Java では、同じ名前を持つ 2 つのクラスをインポートできるコード シナリオが発生することは珍しいことではありません。この状況は、適切に処理しないと曖昧さや混乱を招く可能性があります。
次のコード スニペットがあると想像してください:
import java.util.Date; import my.own.Date; class Test { public static void main(String[] args) { // Prefer your own Date class .. // Prefer util.Date class } }
この例では、両方の Date クラスがインポートされますが、タスクは次のとおりです。独自の my.own.Date クラスまたは標準の java.util.Date を選択的にインスタンス化します。 class.
この問題に対処するには、次のいずれかのアプローチが必要です。
完全修飾クラスを明示的に使用できます。 name を使用して、使用する Date クラスを指定します。あいまいさ。
java.util.Date javaDate = new java.util.Date(); my.own.Date myDate = new my.own.Date();
もう 1 つのオプションは、インポート ステートメントを省略し、完全修飾パスを使用してクラスを参照することです。
Test.java.util.Date javaDate = new Test.java.util.Date(); Test.my.own.Date myDate = new Test.my.own.Date();
完全修飾クラス名を使用するかインポート ステートメントを省略するとクラス名の競合は解決されますが、冗長になる可能性があります。そしてコードが読みにくくなります。したがって、決定を下す前にメリットとデメリットを慎重に評価することが重要です。
さらに、同じ名前の 2 つのクラスが必要かどうかも検討してください。一般に、潜在的な混乱を減らし、コードの明瞭さを維持するために、同一のクラス名の使用を避けることをお勧めします。
以上がJava でインポートするときにクラス名の衝突を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。