インターフェイス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
は、インターフェイスにすることを検討してください。