有一种情况:
包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();
}
答案 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;