4

これは、実行時にクラスをチェックするために書いた小さなコードです(リフレクションAPIと呼ばれますか?わかりません)が、意図した結果が得られません。コードは次のとおりです。

public class Outer {
    public Outer(){
        System.out.println("Outer Class");
    }
    public class Inner {
        public Inner(){         
            System.out.println("Inner Class");
        }
    }
}

また、コードを実行してテストするために作成したメイン関数もここにあります...

public class ClassTest {

    public static void main(String[] args) {

        Outer outObj = new Outer();
        Outer.Inner inObj = outObj.new Inner();

        // Using Reflection
        Class objTyp = inObj.getClass();
        System.out.println(objTyp.getName());

        //Testing Reflection
        if(objTyp.getClass() == Outer.Inner.class){
            System.out.println("Match classes!");
        }else{
            System.out.println("Mismatch classes!");
        }
    }
}

テストは次のエラーで失敗します。

if(objTyp.getClass() == Outer.Inner.class){ ^ ここで、CAP#1 は新しい型変数です: CAP#1 は ? のキャプチャから Class を拡張します。クラス 1 エラーを拡張します

コードを修正するのを手伝ってください。私は何が欠けていますか?ありがとう。

4

1 に答える 1