0

これはばかげた質問かもしれませんが、オブジェクトのインスタンスをメソッドに送信する方法があるかどうかを知る必要がありますか?

このような:

    public class TestClass
    {
        public TestClass()
        {
            //Initialize
        }
    }

    public class AnotherClass
    {
        Instance!? mInstance;

        public AnotherClass(Instance!? instance)
        {
            mInstance = instance;
        }

        public boolean isInstanceOfTestClass()
        {
            return mInstance == TestClass;
        }
    }

    public class Main
    {
        public static void main(String[] args)
        {
            AnotherClass a = new AnotherClass(TestClass);

            if(a.isInstanceOfTestClass)
                System.out.println("lala");
        }
    }

(コードブロックとしてラップさせようとしました)

4

2 に答える 2

3

「オブジェクトのインスタンス」などというものはありません。オブジェクトはクラスのインスタンスです。つまり、「インスタンス」と「オブジェクト」は同じものを指します。

演算子を使用してinstanceof、任意のオブジェクトが特定のクラスのインスタンスであるかどうかをテストできます。

if (a instanceof AnotherClass) {
    // ...
}

java.lang.Classオブジェクトのクラスを表す class もあります。getClass()オブジェクトを呼び出して取得できます。

Class<?> cls = a.getClass();

の API ドキュメントを参照してくださいjava.lang.Class

于 2013-03-13T19:35:33.687 に答える
0

Class.isAssignableFromT がテスト対象のクラスである Class のインスタンスを使用して構築することができます。

しかし、型付けの強制と非型固有のクラスの作成に悩まされている場合は、ジェネリックについて読むことをお勧めします。

于 2013-03-13T19:38:30.517 に答える