在 IBM ODM 中使用静态域时的 ClassCastException String 与 Enum

问题描述

我按照教程 here 创建了一个静态枚举

对于域值示例,我会将其表述为“示例”并手动将 Getter(在 ARL 中)定义为 return "Example"; 如教程中所述。

然后我定义一个输入/输出变量 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 与 java.lang.Enum 不兼容

有谁知道这是什么原因造成的? 我也试过用大写字母,但也没用。

我也可以为此域编写一个 Java 类,但我宁愿不这样做。

解决方法

我发现了问题,我在定义这个的时候错误地使用了 2 个超类(Object 和 Enum)。

仅使用一个(对象,如链接教程中所定义)解决了问题