Java中是否有类似 instanceOf(Class<?> c)的东西?

2022-08-31 10:38:38

我想检查对象是类的实例还是子类的实例。oCC

例如,如果是类,我想成为,也想成为.pPointx.instanceOf(Point.class)truex.instanceOf(Object.class)true

我希望它也适用于盒装基元类型。例如,如果 是 则 应该是 。xIntegerx.instanceOf(Integer.class)true

有这样的事情吗?如果没有,我该如何实现这样的方法?


答案 1

Class.isInstance 做你想要的。

if (Point.class.isInstance(someObj)){
    ...
}

当然,如果可以改用,则不应使用它,但对于反射方案,它通常会派上用场。instanceof


答案 2

我想检查对象o是类c的实例还是c的子类的实例。例如,如果 p 是类 Point,我想要 x.instanceOf(Point.class)

嗯......什么?什么是 o、p 和 x?

我希望它也适用于基元类型。例如,如果 x 是整数,则 x.instanceOf(Integer.class) 和 x.instanceOf(Object.class) 也应该为 true。

不。它甚至不应该编译。基元不是对象,不能对它们调用方法。

无论如何,有三件事,其中一件绝对可以实现您想要的目标(它们在应用的确切位置上有所不同):