0

パッケージを別のパッケージにリダイレクトしたい。たとえば、「packageA」というパッケージと「packageB」という別のパッケージがあり、packageA をインポートすると packageB がインポートされます。パッケージをコピーせずにこれを実行できるようにしたい。また、packageB の代わりに packageA がインポートされた場合、メソッドを実行する方法はありますか?

4

2 に答える 2

1

簡単な答え: いいえ。

長い答え: パッケージはクラスの一部であり、importステートメントはコンパイル時に読み取られ、解釈されません。あなたが望むことは、ねじれた Java コンパイラーによって行われなければなりません。一部のコンパイラはオープンソースであるため、これを実行できる可能性はありますが、そのような機能が見つかるとは期待していません。

別の答え: Netbeans、Eclipse などの IDE を使用している場合。パッケージ名を別の名前に変更するのに役立つリファクタリング ツールがたくさんあります。

于 2012-12-08T00:27:36.177 に答える
1

importステートメントがどのように機能するかを見てみましょう。

まず、importクラスまたはインターフェースのみをインポートします。パッケージをインポートすることはありません。特に、次のようなもの

import java.util.*

という名前のパッケージ内のすべてのクラスとインターフェースをインポートしますjava.util。このパッケージは単なるクラスとインターフェースのコンテナであるため、「パッケージのインポート」について語っても意味がありません。パッケージ自体は、コンパイルまたは実行されるものではありません。

そうは言っても、「リダイレクト」について話すのは意味がありません。なぜなら、何にリダイレクトするのでしょうか? 「packageA」からクラスをインポートする場合は、直接インポートするだけです。

同様に、packageA からクラスをインポートすると、そのクラスのメソッドにアクセスできます。そのクラスは packageA に存在するため、packageB からインポートしようとしても意味がありません。packageB に同じ名前のクラスがあっても、それらは 2 つの異なるクラスです。実際、これが Java のパッケージの主な理由です。2 人の異なるプログラマーによって書かれたクラスの名前の衝突を避けるためです。

そうは言っても、「インポートのリダイレクト」で解決しようとしている問題に遭遇したことはありますか?

于 2012-12-08T00:31:58.363 に答える