我是camel新手,在阅读一些代码时,我发现了这些代码行,
String className = "ConvertMapToBeanType";
Class clazz = exchange.getContext().getClassResolver().resolveMandatoryClass(className);
getContext()
返回 CamelContext。
getClassResolver()
返回用于加载/查找类的类解析器。
resolveMandatoryClass(className)
是做什么的?这是否返回“className”类的对象。确实如此,那么这样创建类有什么好处呢?
最佳答案
根据您的运行时环境或配置,您可能希望应用不同的 strategies如何通过名称加载类。调用代码并不关心策略,只要它适合环境即可。因此,您向调用代码提供一个接口(interface)(例如,ClassResolver
)来执行几种不同策略实现之一(例如,DefaultClassResolver
和 OsgiClassResolver
)达到目标。
关于java - Apache Camel的Interface ClassResolver中的resolveMandatoryClass(String name)有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602577/