[英]Why import java.lang classes like NullPointerException?
每个编译单元都会隐式导入在预定义的 package java.lang 中声明的每个公共类型名称,就像声明 import java.lang.* 一样; 在任何 package 语句之后立即出现在每个编译单元的开头。 因此,所有这些类型的名称在每个编译单元中都可以作为简单名称使用。
但是,有时我会看到从java.lang
导入类的代码,例如import java.lang.NullPointerException;
. 这样做有什么好的理由吗?
这样做有什么好的理由吗?
几乎可以肯定没有。 唯一可能的解释是他们在当前的 package 中定义了自己的NullPointerException
,并且他们不想在当前的 class 中使用它。 (而且你不应该那样做......)
最可能的解释是有人不理解Java。
它也可以通过 IDE 来解释,暗示进口1 。 但这应该通过代码审查来获取,因此如果您在已发布的代码库中看到它,这是一个潜在的代码质量危险信号。
如果代码是由源代码生成器生成而不是由人编写的,也可以解释。 这是可以原谅的,只要它不会导致错误的代码。
1 ...虽然我从未见过 IDE 为java.lang
类执行此操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.