質問

Javaのエンティティを資格を得るための特別な方法がいくつかあることに気付きました。

Object o = new Outer().new Inner();

この場合、外側のクラスで内部クラスを資格を取得しているため、外側クラスをインポートするだけが必要です。

import mypackage.Outer;

このような他のケースはありますか? (つまり、ここで 普通でない 資格が発生します - 珍しいことによって私はそうではありません: fullQualifier.identifier).

自動輸入のケース(java.lang、プリミティブタイプなど)を除外しています。

役に立ちましたか?

解決

あなたが説明した構造を誤解していると思います:

Object o = new Outer().new Inner();

実際には、完全に資格を付ける方法です Inner クラス「コンストラクター」と同じように

Outer.Inner i = new Outer().new Inner();

一方、これを書くことができます:

import path.to.Outer;
import path.to.Outer.Inner;

// ...

Inner i = new Outer().new Inner();

他のヒント

また、以下の場合、クラスをインポートする必要はありません。

  • オブジェクトへのフルパスを使用します。例えば:

    java.util.Date d = new java.util.Date();
    
  • クラスは同じパッケージにあります

  • クラスはにあります java.lang パッケージEG String

この場合の外側のパッケージには、内側のパッケージが含まれていました。そのため、1つのコンポーネントを使用するためだけにパッケージ全体をインポートする必要はありません。文字列、java.lang全体をインポートする必要はありません。いくつかの複雑なライブラリの使用では、いくつかのIDEを使用している場合、netbeans ctrl+shift+など、インポートを修正できます。インポートを修正します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top