在使用CodeModel的交换机中使用Enum常量

时间:2011-06-16 13:33:24

标签: java code-generation sun-codemodel

我使用code model API生成java源文件。我有一个通过codemodel API定义的枚举,我想在交换机块中使用它。在switch语句中,枚举常量应该用作非限定的。我无法访问枚举常量的非限定名称,因为代码模型API使用枚举类名限定常量。

简而言之,我想使用codemodel API生成以下代码片段。

enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
   case A:
   //do something
   case B:
   //d0 something else
}

但是codemodel会像这样生成

enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
    case MyEnum.A:
    //do something
    case MyEnum.B:
    //d0 something else
 }

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

JExpr.ref("A")直接引用枚举常量。