2011-10-11 80 views

回答

4

编号枚举始终是引用类型,并且null是任何引用类型的有效值。您可以随时

MyEnum x = null; 

,如果您有未明确初始化实例或静态变量,它会始终默认为空。

1

这可能是通过选择Java Design By Contract系统并更改每个取得枚举的函数使其不为空来完成(非常非常痛苦)。当然,这对于现有项目来说是一项巨大的工作。

更实际的一点是,您可能会考虑将static code analysis tool集成到您的构建过程中。这也是一个很大的工作量(它可能会发现一个巨大的“bug”),但如果你有时间投资它,可能是可行的(仍然很痛苦)。正确的静态代码分析工具可能会检测到这种错误。

相关问题