2 つの類似したオブジェクト (実際にはエンティティ) があります。関数から、それらのいずれかを取得します。したがって、ランタイム中にのみ取得したものを知っています。
取得したオブジェクトを処理する必要があります。両方とも、適用されるプロセスのセットは同じです。したがって、これらのクラスの両方にジェネリック関数を記述したいと思います。書いてみましたが、これを実装する方法が明確にわかりませんでした。
List<MyClassA> objAList;
List<MyClassB> objBList:
List<ResultA> resultObjAList;
List<ResultB> resultObjBList;
objAList = getResult();
objBList = getResult()
if ( objAList != null ) {
// Set of function calls on ObjA to process further. For ex:
resultObjAList = doProcess(objAList);
} else {
// Same set of function class to process. For Ex:
resultObjBList = doProcess(objBList);
}
いくつかの試行の後、これらのクラスのそれぞれを処理するために、似たように見える 2 つの異なる関数を作成することに決めようとしています。
doProcess
上記の関数に注意してください。or を取り、objA
orobjB
を返しresultObjA
ますresultObjB
。
これらの両方をインターフェイスでラップすることはできません。したがって、オプションは除外されます。
doProcess
次のようになります。
List<ResultA> doProcess( List<MyClassA> A ) {
for ( MyClassList a : A ) {
a.getSomething();
doanotherProcess(a.getxya(), a.getABC());
....
}
return AnotherListOfType_ResultA;
}
これに対してジェネリック関数を書くことは可能ですか?