2017-07-05 7 views
-2

このコードは私に問題を与えています。私がしたいのは、この配列リストにジェネリックを追加できるメソッドを作成することだけです。ジェネリックスでうまく動作するクラスがあれば、配列リストを使う必要はありません。無駄な応答を得る前に、これらのオブジェクトは、それらが入っているオブジェクトのコンストラクタで初期化され、getterとsetterが存在します。問題は、配列リストの.add()メソッドがジェネリックを受け入れていないということです。ArrayListのJavaジェネリックス

private ArrayList<? extends Inputable> inputSubscriber; 
private ArrayList<? extends Updateable> updateSubscriber; 
private ArrayList<? extends Renderable> renderSubsciber; 

public <e extends Inputable> void subscribeToInput(e inputable){ 
    this.getInputSubscriber().add(inputable); 
} 

public <e extends Updateable> void subscribeToUpdate(e updateable){ 
    this.getUpdateSubscriber().add(updateable); 
} 

public <e extends Renderable> void subscribeToRender(e renderable){ 
    this.getRenderSubsciber().add(renderable); 
} 
+3

あなたはその 'extend'ものは必要ありません。 'Inputable'、' Updateable'、 'Renderable'を直接使うべきです。 – user2357112

+0

はい、ありがとう、私はちょうど私の間違いが愚かであり、既に答えを提供したことに気づいた。しかし、あなたの迅速な返信をありがとう!私はちょっと待っていた... –

答えて

-2

これは私のところでは愚かでした。私は、この問題がどうやってここで質問をするのに十分長く続いたのか分かりません。同じ問題を抱えているあなたのためには、この問題はジェネリックスを必要とせず、このように解決することができます。私は入力可能なものと他のものがインターフェースなので、複雑なものを上回ります。

private ArrayList<Inputable> inputSubscriber; 
private ArrayList<Updateable> updateSubscriber; 
private ArrayList<Renderable> renderSubsciber; 

public void subscribeToInput(inputable){ 
    this.getInputSubscriber().add(inputable); 
} 

public void subscribeToUpdate(updateable){ 
    this.getUpdateSubscriber().add(updateable); 
} 

public void subscribeToRender(renderable){ 
    this.getRenderSubsciber().add(renderable); 
} 
関連する問題