我的代码充满了这样的事情:
Block attackedBlock = (fixtureA.getUserData() instanceof Block) ? (Block) fixtureA.getUserData() : (Block) fixtureB.getUserData();
Bullet bullet = (fixtureA.getUserData() instanceof Bullet) ? (Bullet) fixtureA.getUserData() : (Bullet) fixtureB.getUserData();
这行得通,但是IMO却很杂乱,所以我提出了一种缩短行数的方法:
Fixture getFixture(Class USER_DATA) {
return (fixtureA.getUserData() instanceof USER_DATA) ? fixtureA : fixtureB;
}
我收到错误消息USER_DATA不是一个类,这是可以理解的,但是如何使它在指定的类中看起来呢?它还说,con悔总是会导致错误/我该怎么办?
最佳答案
您需要类型为Class
的参数,因此请调用getFixture(Player.class)
。