2015-06-15 31 views
0

看看下面的类,例如:Java导入静态方法,但不能在现场

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

现在,从另一个文件,我想import staticClassName.TEST(),但不ClassName.TEST

我将如何去导入一个方法,但不是一个相同名称的字段,反之亦然?

+0

认为您可以做的最好的做法是将字段的范围修改为“私有”或包级别访问(如果其他文件不在当前包中)。 – bphilipnyc

回答

2

你不行。

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

当您使用

import static com.example.ClassName.TEST; 

你告诉你会想从类型com.example.ClassName使用简单的名称TEST无资质的编译器。它指的是什么成员无关紧要*。

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

*除非obscuring可能发生。