以前は、Java クラスで "import static" 構造をよく使用していました。最近、私は代わりに
import static my.pack.A.MY_CONSTANT;
あなたが使用することができます
import my.pack.A;
public class B {
private static final MY_CONSTANT = A.MY_CONSTANT;
}
このアプローチの最も明白な利点は次のとおりです。
- Eclipse でリファクタリングを使用すると、静的インポートをいじることなく、コードからすべての長い定数式を簡単に取り除くことができます
A.B.C.CONSTANT.ANOTHER_ONE.TOO_LONG
(これは Eclipse で習得するのにそれほど迅速ではありません)。 - 任意の式に任意の名前を付けることができますが、現在のコンテキストではより意味のあるものになる可能性があります。
例えば:
private static final PAYMENT_TYPE = PaymentType.CASH;
...
calculateSomething(amount, PAYMENT_TYPE);
それ以外の
import static my.pack.PaymentType.CASH
...
calculateSomething(amount, CASH);
また、デフォルトの PaymentType 値が CREDIT_CARD に変更された場合、これはリファクタリングがより簡単になります。
私の質問は、静的インポートと比較してこのアプローチの欠点はありますか、それとも代わりにどこでも使用できますか?
今のところ私の唯一の懸念は、コンパイルされた結果の .class ファイルです。これは、説明されている 2 つのアプローチではおそらく異なるものです。そのため、理論的にはパフォーマンスとメモリ使用量が低下する可能性があります。