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 可能发生。
以下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 可能发生。