我的代码充满了这样的事情:

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)

10-06 13:07