当前位置: 首页 > 面试题库 >

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

谭云瀚
2023-03-14
问题内容

我想检查一个对象o是否是类的实例C或的子类C

例如,如果pis是类,Point我想x.instanceOf(Point.class)成为true并且也要x.instanceOf(Object.class)成为true

我希望它也适用于装箱的原始类型。例如,如果xInteger那么x.instanceOf(Integer.class)应该是true

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


问题答案:

Class.isInstance可以满足您的需求。

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

当然,如果可以使用它,则不应该使用它instanceof,但是对于反射场景,它通常派上用场。



 类似资料:
  • Mac OS X和iOS有一个名为的不错的小类。它是一个单例,可让您存储字符串、数组和原语,并且您始终可以实现一些方法来向其添加自定义对象。当您需要存储快速设置而无需处理文件操作(例如,存储最后选择的字体名称)时,它非常有用。 Java有类似这样简单的东西吗?我希望能够存储用户的最后设置,以便在程序重新加载时重新加载类似的状态,但我不确定在Java中最好的方法是什么。

  • Java有Future或FutureTask,可以在新线程中运行任务。然后,将执行结果返回到原始线程。Swift中是否有任何功能可以实现这一点?

  • 问题内容: 我从来没有见过这样的声明,它是否存在于Java世界中? 问题答案: Java的版本是-它创建指定类型的新对象。 在Java中,内存是为您管理的,因此您不能显式或对象。

  • 我想用超文本标记语言检查某个文本,比如“无值”,如果存在,就给它赋值0。有人知道怎么做吗?(谷歌了很多,但没有找到任何相关的东西)

  • 问题内容: C#属性(我的意思是get和set方法)是一个非常有用的功能。Java是否也具有类似于C#属性的内容。我的意思是我们如何在Java中实现类似以下C#代码的内容: 问题答案: 不,Java没有等效性。它只有访问器和更改器方法,以及getter和setter方法的奇特名称。例如:

  • 问题内容: 在C#中,您可以将一个类标记为,以便只能从同一包中对其进行访问。Java有什么类似的东西吗? 问题答案: 您可以通过从类的声明中省略安全修饰符(公共,私有)来创建程序包专用类。