2017-08-10 9 views
0

さまざまな数の汎用パラメータを取り入れることができるクラスを実装する方法が必要です。基本的には、以下のクラスを組み合わせる方法が必要です:汎用変数のJava可変数

class IncidentReporter1<A> { 
    public void reportIncident(A a) { 
    } 
} 
class IncidentReporter2<A, B> { 
    public void reportIncident(A a, B b) { 
    } 
} 
class IncidentReporter3<A, B, C> { 
    public void reportIncident(A a, B b, C c) { 
    } 
} 
class IncidentReporter4<A, B, C, D> { 
    public void reportIncident(A a, B b, C c, D d) { 
    } 
} 

ただ1つのIncidentReporterクラスにする必要があります。私はClass[]を実行時に受け取り、それを使うことができると知っていますが、これをjavaで行うより良いネイティブな方法があるのだろうかと思っていました。

+0

4つをすべて組み合わせたい場合は、その4-argメソッドが必要です。次に、4つのタイプのパラメータすべてが必要です。 4つのタイプのパラメータを持つクラスに4つのメソッドをすべて追加するだけではどうですか? –

+5

この質問には[X/Y problem](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)ブーケがあります –

+0

今後20議論が必要になるかもしれません。私はジェネリックスを使わずにObject []を使ってデータを送信することを計画していましたが、キャスティングなどを簡単にするためにジェネリックで試してみることもできました。 –

答えて

0

私はおそらくちょうどこのようにそれを記述します。

public class IncidentReporter { 

public void reportIncident(Class<?>... differentClasses) { 

} 

} 

私が考える多くのクリーナー。

+0

私は同じことをしましたが、クラスの種類だけでなくデータを送信しているので、オブジェクト[]を使用しました。ありがとう! –

関連する問題