java - Apache Camel的Interface ClassResolver中的resolveMandatoryClass(String name)有什么用?

标签 java apache-camel

我是camel新手,在阅读一些代码时,我发现了这些代码行,

String className = "ConvertMapToBeanType";
Class clazz = exchange.getContext().getClassResolver().resolveMandatoryClass(className);

getContext() 返回 CamelContext。

getClassResolver() 返回用于加载/查找类的类解析器。

resolveMandatoryClass(className) 是做什么的?这是否返回“className”类的对象。确实如此,那么这样创建类有什么好处呢?

最佳答案

根据您的运行时环境或配置,您可能希望应用不同的 strategies如何通过名称加载类。调用代码并不关心策略,只要它适合环境即可。因此,您向调用代码提供一个接口(interface)(例如,ClassResolver)来执行几种不同策略实现之一(例如,DefaultClassResolverOsgiClassResolver)达到目标。

关于java - Apache Camel的Interface ClassResolver中的resolveMandatoryClass(String name)有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35602577/

相关文章:

java - Camel 邮件 IMAP 不跳过失败的邮件

java - `Iterable` 的接口(interface)转换

java - 带有通用图像加载器的 FileNotFoundException

java - Apache Camel JMS : "Not allowed to create destination" when trying to connect to a queue

java - 使用 hazelcast 滚动升级多个 java 独立应用程序(apache Camel 实例)

java - 如何使用 Camel jackson 将 JSONArray 转换为对象列表

compiler-errors - Apache camel-该类型必须实现继承的抽象方法错误

java - Apache tomcat 奇怪的行为

java - 为什么没有一种简单的方法可以在 Java 中复制对象?

java - 如何使用使用给定模式最后一次出现的正则表达式来拆分Java中的字符串列表?