セイをインポートしません。スイッチは、次のように私は列挙型を持つクラス
package stackoverflow.classes;
import stackoverflow.models.MyPojo;
public class MyClass {
public static void main(final String... args) {
final MyPojo pojo = new MyPojo();
switch(pojo.getMyEnum()) {
case VALUE_1:
break;
case VALUE_2:
break;
default:
break;
}
}
}
:私は
MyPojo.getMyEnum()
に
switch
を行う必要があり、私は直接私のクラスに列挙型をインポートする
ない必要性を行います210
これはなぜ私が不思議に思っていたのですか? Enumを直接インポートしない場合、JavaはEnum値をどのように解決しますか?
まあ、それは 'MyPojo'クラスで使用されているので間接的にenumをインポートします(両方が同じパッケージにあるためにインポートが不要です)。 – Thomas
この場合、Enumは別のクラス(MyPojo)の内部で定義され、静的内部クラスのように動作します。だからあなたの質問に答えています:あなたがあなたのクラスをインポートするとき、あなたはまた、すべての内部クラスと列挙をインポートしました。列挙型が別のファイルで定義されている場合は、明示的にインポートするか、完全修飾名(org.mynamespace.MyEnumなど)を使用する必要があります。 – DoubleM
@Thomas以前は間接インポートについて聞いたことがありません。詳しく教える? –