在java中正确使用静态导入

在java中正确使用静态导入,java,import,static-import,Java,Import,Static Import,可能重复: 我很少在java中看到这样的静态导入: 导入静态java.lang.Math.* 然后您可以访问PI,而不必调用Math.PI 既然你不经常看到这一点,这是否意味着这样做是一个不好的设计?这还不错。这通常是不必要的。每当我的程序大量调用java.lang.Math时,我个人都会使用它 大多数人也不知道它,因为它很少使用。同样的事情也适用于其他构造,比如静态构造函数。我不喜欢使用它们,只是因为我想知道每个常量的定义位置。如果您的类和常量的命名正确,它将大大提高可读性 再说一次,如果您

可能重复:

我很少在java中看到这样的静态导入:

导入静态java.lang.Math.*

然后您可以访问
PI
,而不必调用
Math.PI


既然你不经常看到这一点,这是否意味着这样做是一个不好的设计?

这还不错。这通常是不必要的。每当我的程序大量调用
java.lang.Math
时,我个人都会使用它


大多数人也不知道它,因为它很少使用。同样的事情也适用于其他构造,比如静态构造函数。

我不喜欢使用它们,只是因为我想知道每个常量的定义位置。如果您的类和常量的命名正确,它将大大提高可读性


再说一次,如果您使用同一类中的许多常量,并且很明显它们来自何处,那么最好使用通配符导入。

这是一个不错的设计,但是在我看来,
Math.PI
对于维护来说比导入静态代码之前的
PI
更清晰。这就是为什么大多数开发人员倾向于使用旧的表单。

有时是的。当您使用静态导入时,静态导入的类中的字段和方法可能“看起来”像来自您的类

IMHO,这确实影响了可理解性

也就是说,我一直在JUnit测试中使用它