【问题标题】:Java import static method but not fieldJava导入静态方法但不是字段
【发布时间】:2015-06-15 01:04:36
【问题描述】:

以下面的类为例:

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

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

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

【问题讨论】:

  • 认为您能做的最好的事情是将字段的范围修改为“私有”或包级访问(如果其他文件在当前包之外)。

标签: java import static


【解决方案1】:

你不能。

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

当你使用

import static com.example.ClassName.TEST;

您是在告诉编译器您将要使用来自com.example.ClassName 类型的简单名称TEST,而无需限定。它所指的成员无关紧要*。

Java 将足够聪明,可以根据其上下文(在何处以及如何使用)来确定您是否要使用该方法或字段。

* obscuring 可能发生的情况除外。

【讨论】:

    猜你喜欢
    • 2012-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多