我对阿帕奇骆驼比较新手。我正在开发名为' Upgrade'使用Java DSL。我有一个名为' Action'它有一个枚举,
public enum bundle{
AAA("Monthly AAA Bundle"),
BBB("Monthly BBB Bundle");
private String upbundle;
private bundle(String upBundle) {this.upbundle = upBundle;}
private getBundle() {return upbundle;}
}
从我想要致电的路线' valueOf()'在枚举上获取BundleName。我有枚举价值' AAA'在交换标题。使用' AAA'我想检索枚举值,即每月AAA捆绑包'并将其存储在交换标题名称' destBundleName'
中我用过
.setHeader("destBundleName", simple(Action.bundle.valueOf(header("bm").toString()).getBundle()))
在java.lang.Enum.valueOf中给出了运行时错误"没有枚举常量Action.bundle.header {bm}
但如果我使用
.setHeader("destBundleName", simple(Action.bundle.valueOf("AAA")).getBundle())) it works fine.
这意味着在第一例如header(" bm")。toString()没有用String替换它。
我可以编写调用enum valueof&的process()或bean方法。从我的路线我可以使用该bean方法,但有没有办法直接从路由访问枚举valueOf()使用来自camel头的值作为valueOf()参数。
非常感谢您的帮助。