在 IBM ODM 中使用静态域时的 ClassCastException 字符串与枚举
ClassCastException String vs Enum when using Static Domain in IBM ODM
我按照教程here创建了一个静态枚举
对于域值 EXAMPLE,我会将其描述为 'Example' 并手动将 Getter(在 ARL 中)定义为 return“示例”; 如教程中所述。
然后我定义一个 input/output 变量 myDomainExample 并尝试通过 REST API.
测试它
如果我写一个虚拟规则,例如:
then
set 'my domain example' to Example;
我得到这个 json 结果:
{
"__DecisionID__": "144805689948397501147221553",
"myDomainExample ": "Example"
}
如果我编写以下虚拟规则:
if
'my domain example' is Example
then
set 'my domain example' to Example;
然后我输入以下 json 负载:
{
"__DecisionID__": "144805689948397501147221553",
"myDomainExample ": "Example"
}
我收到此错误消息:
java.lang.ClassCastException: java.lang.String incompatible with java.lang.Enum
有人知道是什么原因造成的吗?
我也试过用大写字母也没用。
我也可以为这个域写一个 Java class,但我不想写。
我发现了问题,我在定义这个(对象和枚举)时错误地使用了 2 个超类。
仅使用一个(对象,如链接教程中所定义)解决了问题
我按照教程here创建了一个静态枚举
对于域值 EXAMPLE,我会将其描述为 'Example' 并手动将 Getter(在 ARL 中)定义为 return“示例”; 如教程中所述。
然后我定义一个 input/output 变量 myDomainExample 并尝试通过 REST API.
测试它如果我写一个虚拟规则,例如:
then
set 'my domain example' to Example;
我得到这个 json 结果:
{
"__DecisionID__": "144805689948397501147221553",
"myDomainExample ": "Example"
}
如果我编写以下虚拟规则:
if
'my domain example' is Example
then
set 'my domain example' to Example;
然后我输入以下 json 负载:
{
"__DecisionID__": "144805689948397501147221553",
"myDomainExample ": "Example"
}
我收到此错误消息:
java.lang.ClassCastException: java.lang.String incompatible with java.lang.Enum
有人知道是什么原因造成的吗? 我也试过用大写字母也没用。
我也可以为这个域写一个 Java class,但我不想写。
我发现了问题,我在定义这个(对象和枚举)时错误地使用了 2 个超类。
仅使用一个(对象,如链接教程中所定义)解决了问题