java - 如何在没有特定对象的方法内执行instanceof?

标签 java class object instanceof

我的代码充满了这样的东西:

Block attackedBlock = (fixtureA.getUserData() instanceof  Block) ?  (Block) fixtureA.getUserData() :  (Block) fixtureB.getUserData();
Bullet bullet       = (fixtureA.getUserData() instanceof Bullet) ? (Bullet) fixtureA.getUserData() : (Bullet) fixtureB.getUserData();

这可行,但在我看来,它相当困惑,所以我做了一个缩短行的方法:

Fixture getFixture(Class USER_DATA) {
    return (fixtureA.getUserData() instanceof USER_DATA) ? fixtureA : fixtureB;
}

我得到的错误是 USER_DATA 不是一个类,这是可以理解的,但是如何让它在指定的类中显示?它还说该条件将始终评估为 false/我应该做什么?

最佳答案

您需要一个 Class 类型的参数,因此调用 getFixture(Player.class)

关于java - 如何在没有特定对象的方法内执行instanceof?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43166379/

相关文章:

java - 从简单的 java 对象 (POJO) 进行 getter 到 setter 映射的好方法是什么?可以使用反射吗?

java:关于重写方法的继承问题

java - 一个对象可以被多个类控制吗? (以及如何阻止这种情况发生)

Java:你能把Class转换成一个特定的接口(interface)吗?

python - Python 中的相同对象问题

javascript - 在 Object.create 中使用对象文字与函数表达式之间有区别吗?

java - JUnit - 从类型转换返回模拟对象

java - 从 JList 中删除多个选择

java - 如何从 ArrayList 在 ListView 上显示员工详细信息?

JavaScript:检测参数是否是数组而不是对象(Node.JS)