以下哪项更好?

a instanceof B

B.class.isAssignableFrom(a.getClass())

我所知道的唯一区别是,当'a'为null时,第一个返回false,而第二个抛出异常.除此之外,他们总是给出相同的结果吗?

推荐答案

使用instanceof时,需要在编译时了解B的类.当使用isAssignableFrom()时,它可以是动态的,并且在运行时会发生变化.

Java相关问答推荐

java.lang. StackOverFlow错误:显示表及其依赖项时为空

JLS中形式参数列表后面的任何括号对用于确定方法结果中的精确数组类型的具体含义是什么?

为什么我的画布没有显示在PFA应用程序中?

try 创建一个对象,使用它,然后使用一条语句将其存储为列表

在bash中将数组作为Java程序的参数传递

只需最少的代码更改即可将版本号标记添加到日志(log)

RichFaces 3.x-Spring Boot-迁移web.xml

暂停计时器

第三方Jar pom.xml

使用While循环打印素数,无法正常工作

如何在太阳系模拟器中添加月球?

从LineChart<;字符串、字符串和gt;中删除数据时出现特殊的ClassCastException;

try 使用预准备语句占位符获取信息时出现Try-With-Resources错误

如何在不作为类出现的表上执行原生查询?

插入中的JOOQ序列,设置为VS值

AWS Java SDK v2.x中没有setObjectAcl方法

为什么这种递归会有这样的行为?

如果执行@BeForeEach#repository.save(),则测试中的UnitTest最终UUID会发生更改

如何在MPAndroidChart中的条形图上正确添加标签

这是JavaFX SceneBuilder的错误吗?