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) {
    // ...
}

还有 class java.lang.Class,它表示对象的类。您可以通过调用getClass()对象来获取它:

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

请参阅java.lang.Class.

于 2013-03-13T19:35:33.687 回答
0

好吧,您可以使用Class.isAssignableFrom和构造 Class 的实例,其中 T 是您要测试的类。

但是,如果您对强制键入和制作非类型特定的类感到困扰,我建议您阅读泛型。

于 2013-03-13T19:38:30.517 回答