繁体   English   中英

为什么 IDLJ 不生成真正的枚举?

[英]Why doesn't IDLJ generate real enums?

我已经定义了一个通过 IDLJ.exe 编译的 IDL。 IDL 包含各种不同的枚举类型。 我注意到在将代码生成到 .java 源文件中之后,枚举类型实际上并不是枚举,而只是具有一组相同类型的最终常量的常规类。

我注意到多个不同的 IDL 代码生成器做同样的事情,包括 RTI 的 rtiddsgen 工具。

代码生成器实际上没有使用 java 'enum' 关键字在 Java 中生成枚举,有什么特别的原因吗? Java 中的枚举类型中支持字段、构造函数和方法,所以我认为这不会是一个限制。

可能是类层次结构限制吗? 我知道 IDLJ 生成扩展 CORBA 实用程序的类,但 RTI 的 rtiddsgen 并没有扩展类似的东西。 然而他们都没有使用真正的枚举类型。

您提到的代码生成工具基于 OMG 的IDL 到 Java 语言映射规范。 该规范提到“它基于 Java JDK 1.1 及更高版本”,因此早于使用本机 Java 枚举。

OMG 有一个更新的IDL4 到 Java 语言映射规范。 表 7.1 Java 语言版本和特性中,它明确提到了需要 Java 版本 J2SE 5.0 的枚举特性。 该规范目前是一个测试版。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM