Java将instanceof作为参数发送

时间:2013-03-13 19:31:07

标签: java parameters instance instanceof

这可能是一个愚蠢的问题,但我知道是否有办法将对象的实例发送给方法?

像这样:

    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");
        }
    }

(试图将其包装为代码块)

2 个答案:

答案 0 :(得分:3)

没有“对象的实例”这样的东西。对象是类的实例 - 因此“实例”和“对象”指的是相同的东西。

您可以使用instanceof运算符来测试任意对象是否是特定类的实例:

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

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

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

请参阅java.lang.Class的API文档。

答案 1 :(得分:0)

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

但如果你对强制打字和制作非特定类别的课程感到困扰,我建议你阅读泛型。