根据Java 实践,通常应该避免使用静态导入。我明白了。但是,我想知道以下两种做法之间的区别是:
代码示例 #1
在第一个示例中,我静态导入SomeClass.someMethod
,并在我自己的类的上下文中使用它,省略任何名称限定符。
import static package1.SomeClass.someMethod;
package package2;
public class MyClass {
public void doSomething() {
someMethod("Hello");
}
}
代码示例 #2
在第二个示例中,我导入了类本身,然后将调用重定向到由其全名限定的方法。
import package1.SomeClass;
package package2;
public class MyClass {
private void someMethod(String text) {
SomeClass.someMethod(text);
}
public void doSomethind() {
someMethod("Hello");
}
}
两者的本质区别是什么?我的意思是除了代理调用会给我们带来的非常明显的优势(例如事件挂钩、参数监控等)。特别是,我想知道这方面是否有任何最佳实践,以及这是否有与性能相关的指南.