同一源文件中类使用内部枚举为何仍需导入?(NetBeans8.2)
关于NetBeans 8.2中静态嵌套枚举需导入的问题解答
首先明确:从Java语言规范来看,你代码里的import pak.Foo.Bar;是完全多余的。在Foo类的内部,直接使用Bar就能引用这个静态嵌套枚举,标准javac编译器根本不会要求这行导入语句。
NetBeans 8.2强制要求添加该导入的原因,是IDE自身的语法检查/编译工具存在误判:
- NetBeans 8.2对Java静态嵌套类型的作用域解析逻辑有缺陷,它错误地认为在方法参数中使用
Bar时需要显式导入,却忽略了Bar本身就定义在当前类Foo的作用域内这一事实。 - 这个问题是NetBeans 8.2版本的特定问题,不属于Java语言本身的要求。
你可以自行验证:删掉这行导入语句,用标准javac编译代码,完全能正常通过;只有NetBeans 8.2的内置检查会报错。
内容的提问来源于stack exchange,提问作者chuck
相关产品推荐
相关产品推荐

