在 CodeModel 的 switch 中使用 Enum 常量
我正在使用 代码模型 API 生成 java 源文件。我有一个通过 codemodel API 定义的枚举,我想在 switch 块中使用它。在 switch 语句中,枚举常量应作为非限定常量使用。我在访问枚举常量的非限定名称时遇到了麻烦,因为代码模型 API 使用枚举类名称来限定常量。
简而言之,我想使用 codemodel API 生成以下代码片段。
enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
case A:
//do something
case B:
//d0 something else
}
但代码模型会像这样生成,
enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
case MyEnum.A:
//do something
case MyEnum.B:
//d0 something else
}
感谢您的帮助。
I am using the code model API to generate java source files. I have an enum defined through codemodel API and I want to use that in a switch block. In a switch statement, the enum constants should be used as unqualified. I have trouble in accessing the unqualified name of the enum constants, as code model API qualifies the constants with the enum class name.
In short, I want to generate the following code fragment using codemodel APIs.
enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
case A:
//do something
case B:
//d0 something else
}
but codemodel generates like this
enum MyEnum {A,B};
MyEnum m = MyEnum.A;
switch (m){
case MyEnum.A:
//do something
case MyEnum.B:
//d0 something else
}
Appreciate your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
JExpr.ref("A")
给出对枚举常量的直接引用。JExpr.ref("A")
gives a direct reference to the enum constant.