我的代码充满了这样的东西:
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/