Java 导入静态方法但不导入字段

Java import static method but not field

以下class为例:

public final class ClassName {
    public static final void TEST() {}
    public static final Object TEST;
}

现在,我想从另一个文件 import static ClassName.TEST(),而不是 ClassName.TEST

我将如何导入方法而不是同名字段,反之亦然?

你不能。

import语句完全是一个编译时的概念。他们在 运行 时间什么都不做。它们允许您使用简单名称而不是类型或其成员的完全限定名称。

当你使用

import static com.example.ClassName.TEST;

您是在告诉编译器您希望使用类型 com.example.ClassName 中的简单名称 TEST 而无需限定。它指的是什么成员并不重要*。

Java 将足够聪明,可以根据上下文(使用位置和方式)确定您是否打算使用该方法或字段。

* 除非 obscuring 可能发生。