静态导入或普通导入静态嵌套类

5

我知道传统的import语句是用于类,而import static语句是用于静态成员。但对于静态嵌套类应该使用什么呢?

考虑以下代码:

public class MyUtilityClass {
    public static class SomeNestedClass {
        //...
    }
    public static class AnotherNestedClass {
        //...
    }
}

使用方法:

import MyUtilityClass.AnotherNestedClass;
import static MyUtilityClass.SomeNestedClass;

public class Main {
    public static void main(String[] args) {
        SomeNestedClass a = new SomeNestedClass();
        AnotherNestedClass b = new AnotherNestedClass();
    }
}

你看,可以使用importimport static语句。但是哪一个更正确、更典型或者是大多数编码指南推荐的呢?


3
在大多数情况下,我们使用静态导入来导入字段方法,而使用普通导入来导入类型。因此,这里使用普通导入会更加自然 - Pshemo
1
我认为这不是关于更正确还是更错误的问题,而是关于最佳实践。静态导入及其相应变量的用法更加精确,可以提高代码的清晰度和可读性。 - Sambit
4
作为一个数据点,Google Java编码规范中指出:3.3.4 不使用静态导入类。其中提到:"对于静态嵌套类不使用静态导入,而是用普通导入方式引入。" - Daniel Pryden
1个回答

1
作为一般的最佳实践,应该对成员使用静态导入static import,而对类使用常规导入import
Java文档中有关static import的说明中可以看到:

正常的导入声明从包中导入类,允许它们在不使用包限定符的情况下被使用。静态导入声明从类中导入静态成员,允许它们在不使用类限定符的情况下被使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接