Java では、1 つのクラスで同じ名前を持つ複数のクラスを使用する場合、それらのクラスのすべての使用を常に完全に修飾する必要がありますか? 例えば:
org.foo.ClassA;
gov.bar.ClassA;
これらのクラスの 1 つがコードベースで非常に一般的であるというより具体的なケースでは、通常とは異なるクラスのみを完全に修飾することは許容されますか? たとえば、gov.bar で働いていたのに、org.foo のライブラリからコードを追加したとしたら?
Java では、1 つのクラスで同じ名前を持つ複数のクラスを使用する場合、それらのクラスのすべての使用を常に完全に修飾する必要がありますか? 例えば:
org.foo.ClassA;
gov.bar.ClassA;
これらのクラスの 1 つがコードベースで非常に一般的であるというより具体的なケースでは、通常とは異なるクラスのみを完全に修飾することは許容されますか? たとえば、gov.bar で働いていたのに、org.foo のライブラリからコードを追加したとしたら?
まず、できる限りこれを避けてください。これは、開発者の間でよくあるフラストレーションの原因です。(java.awt.List
そしてjava.util.List
誰か?)
避けられない場合は、両方を使用するクラス ファイルで両方を完全に修飾することをお勧めします。おそらく、これは両方が同じファイルにあるまれな機会です。
ジェネリックを使用して、クラスの名前を効果的に変更できる場合があります。以下は私のためにコンパイルされました。同じ名前のクラスがジェネリックでない場合に最適です。
class TestIt < UtilList extends java . util . List , AWTList extends java . awt . List >
{
public void run ( UtilList utilList , AWTList awtList )
{
}
}
最も重要な質問は、「コードベースに取り組んでいる他の人々は何を期待しているのか?」ということだと思います。よく知られているコーディング標準に逆らって作業することが最善の方法です。
コードベース内のコードを保守する必要があるのが誰なのかがわからない場合は、両方を完全に修飾することがおそらく最も明確な方法です。