在java泛型中使用通配符类型
我想传递在java泛型中使用通配符类型,java,Java,我想传递GameObject类的对象,该类还将实现可碰撞的接口。它应该是什么样子 private boolean isCollision(GameObject<? extends Collidable> collid) { } private boolean isCollision(GameObject如果要确保collid是一个GameObject和一个colliable,可以使用以下语法: private <T extends GameObject & Colli
GameObject
类的对象,该类还将实现可碰撞的
接口。它应该是什么样子
private boolean isCollision(GameObject<? extends Collidable> collid) {
}
private boolean isCollision(GameObject如果要确保collid
是一个GameObject
和一个colliable
,可以使用以下语法:
private <T extends GameObject & Collidable> boolean isCollision(T collid)
private boolean isCollision(T collid)
如果要确保collid
是GameObject
和acolliable
,可以使用以下语法:
private <T extends GameObject & Collidable> boolean isCollision(T collid)
private boolean isCollision(T collid)
定义一个扩展GameObject
和Collidable
的接口可能更容易。然后将您的参数声明为该类型
public interface CollidableGameObject extends GameObject, Collidable {
}
那么您的方法可能是:
private boolean isCollision(CollidableGameObject collid) {
}
除非我丢失了一些东西,否则泛泛型就不需要了。如果<代码>游戏对象< /代码>还不是一个接口,考虑将它变成一个“
< p>”,可以定义一个扩展了<<代码> GAMObjs< /C> >和<代码>可碰撞的接口。然后声明你的参数是那个类型。
public interface CollidableGameObject extends GameObject, Collidable {
}
那么您的方法可能是:
private boolean isCollision(CollidableGameObject collid) {
}
除非我丢失了一些东西,否则泛泛型就不需要了。如果<代码>游戏对象< /代码>还不是一个接口,那么考虑一下它吧?