オブジェクトが必要なタイプであるかどうかをチェックし、ゲッターとセッターを使用したいとします。これは私が今までに思い付いたコードです、それを行うためのより良い方法はありますか?私は引数のためにクラス< < T >>を使ってみましたが、それは私にオブジェクトの適切なインスタンスを与えません。Javaジェネリックオブジェクトのインスタンス化
public <T extends ClassA, P extends ClassB> T setSomething(T c, P ap) {
if (c instanceof ChildA1){
if(ap instanceof ChildB1){
//getters and setters here
c.setValue(ap.getIntValue());
c.setId(ap.getId());
}
}
else if (c instanceof ChildA2){
if(ap instanceof CHildB2){
//getters and setters here
c.setValue(ap.getIntValue());
c.setId(ap.getId());
}
}
UPDATE
イムこのようなコード内の他のこのメソッド呼び出し: a.setSomething(B)を、 bはClassB型であるため、ImはBの子のゲッターとセッターをフェッチできません。
私は混乱しています。ここでの型はどのように関連していますか、これらのgetterとsetterはどのオブジェクトを使用していますか。なぜ、すでに通過しているものをインスタンス化する必要がありますか? – Makoto
あなたは正確に何をしようとしているかを示す完全な例を共有できますか?このコードは*うまくいくはずですが、オブジェクト指向の原則に反します。これを設計するより良い方法があるのだろうかと思います。 – Mureinik
括弧がありません。 – mm759