インターフェイスGameObjectも実装するクラスのオブジェクトを渡したいです。Collidableどのように見えるべきですか?
private boolean isCollision(GameObject<? extends Collidable> collid) {
}
どのように見えるべきですか?collidと の両方のインスタンスである必要がありGameObjectますCollidable。
インターフェイスGameObjectも実装するクラスのオブジェクトを渡したいです。Collidableどのように見えるべきですか?
private boolean isCollision(GameObject<? extends Collidable> collid) {
}
どのように見えるべきですか?collidと の両方のインスタンスである必要がありGameObjectますCollidable。
collidが aGameObject とaであることを確認したい場合は、次のCollidable構文を使用できます。
private <T extends GameObject & Collidable> boolean isCollision(T collid)
GameObjectおよびを拡張するインターフェイスを定義する方が簡単な場合がありますCollidable。次に、パラメーターがその型であることを宣言します。
public interface CollidableGameObject extends GameObject, Collidable {
}
次に、あなたの方法は次のようになります。
private boolean isCollision(CollidableGameObject collid) {
}
何かが欠けていない限り、ジェネリックは必要ないようです。まだインターフェイスになっていない場合GameObjectは、インターフェイスにすることを検討してください。