如何在不导入类的情况下获取类方法

时间:2014-11-29 13:31:49

标签: java package visibility

有一种情况:

包pak1包含一些类

package pak1;

public class A {
    public void g() {}
}

和另一个包pak2

package pak2;

public class B {    
    public  void f() {
       // here I want to call method g() from class A
    }
}

有没有办法在不导入课程A(然后是g())的情况下调用课程A方法new A().g()

如果方法g()是静态的,我可以写

public void f() {
    pak1.A.g();
}

3 个答案:

答案 0 :(得分:4)

您可以使用完全限定的类名,如:

pak1.A a = new pak1.A();
a.g();

答案 1 :(得分:3)

简答:不,你需要导入它。

说完这个之后,如果你使用refection API,你仍然可以在不导入的情况下执行A.g()。请记住,这会给代码增加不必要的复杂性。

答案 2 :(得分:0)

正如你所说,它只能用于静态导入,否则就不可能了。

静态导入的示例位于assertEquals是Assert类

下的方法的位置
 import static org.junit.Assert.assertEquals;