静态导入方法的良好用例是什么?
刚刚收到一条评论,说我对该方法的静态导入不是一个好主意。静态导入是来自 DA 类的方法,该类主要具有静态方法。因此,在业务逻辑的中间,我有一个显然属于当前类的da活动:
import static some.package.DA.*;
class BusinessObject {
void someMethod() {
....
save(this);
}
}
审稿人并不热衷于我改变代码,我没有,但我确实同意他的观点。给出的不静态导入的一个原因是,它令人困惑的是定义方法的位置,它不在当前类中,也不在任何超类中,因此它也需要一些时间来识别其定义(基于Web的审查系统没有像IDE这样的可点击链接:-)我真的不认为这很重要,静态进口仍然是相当新的,很快我们都会习惯于找到它们。
但另一个原因,我同意,是非限定方法调用似乎属于当前对象,不应该跳转上下文。但是,如果它确实属于,那么扩展这个超级类是有意义的。
那么,静态导入方法在什么时候有意义呢?你什么时候做过?您是否/是否喜欢不合格呼叫的外观?
编辑:流行的观点似乎是,如果没有人将它们混淆为当前类的方法,则静态导入方法。例如,来自java.lang.Math和java.awt.Color的方法。但是,如果abs和getAlpha不是模棱两可的,我不明白为什么readEmployee是。与许多编程选择一样,我认为这也是个人偏好的问题。