メソッドの静的インポートは良い考えではなかったというレビューコメントを受け取りました。静的インポートは、ほとんど静的メソッドを持つDAクラスからのメソッドでした。したがって、ビジネスロジックの途中で、現在のクラスに属しているように見えるdaアクティビティがありました。
import static some.package.DA.*;
class BusinessObject {
void someMethod() {
....
save(this);
}
}
レビューアは私がコードを変更することに熱心ではなく、私は変更しませんでしたが、私は彼にある程度同意します。静的インポートを行わなかった理由の1つは、メソッドが定義された場所が混乱していたことです。現在のクラスにもスーパークラスにもなかったため、定義を特定するのに時間がかかりすぎました(Webベースのレビューシステムにはクリック可能機能がありません)。 IDEのようなリンク:-)これはそれほど重要ではないと思います。静的インポートはまだ非常に新しく、すぐにそれらを見つけることに慣れます。
しかし、私が同意するもう1つの理由は、修飾されていないメソッド呼び出しが現在のオブジェクトに属しているようであり、コンテキストをジャンプしてはならないということです。しかし、それが本当に属していれば、そのスーパークラスを拡張することは理にかなっています。
では、静的インポートメソッドが意味をなすのはいつですか?いつやったの?修飾されていない呼び出しの外観は気に入りましたか?
編集:一般的な意見は、誰も現在のクラスのメソッドと混同しない場合は、静的インポートメソッドであるようです。たとえば、java.lang.Mathおよびjava.awt.Colorのメソッド。しかし、absとgetAlphaがあいまいでない場合、readEmployeeがなぜであるかわかりません。多くのプログラミングの選択肢と同様に、これも個人的な好みだと思います。