我有兩個相似的對象(實際上是實體)。從一個函數中,我得到其中一個。所以我知道我只在運行期間得到哪一個。動態返回類型 - Java泛型
我需要對我得到的對象進行處理。兩者都具有相同的一組要應用的過程。所以我想寫這兩個類的通用函數。我試圖寫,但我沒有清楚如何實現這一點。
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);
}
我即將決定寫這類似於爲每個類做處理兩種不同的功能,嘗試幾次後。
注意上面的doProcess
函數。它需要objA
或objB
並返回resultObjA
或resultObjB
。
我無法用接口包裝這兩個。所以選項被排除了。
doProcess
看起來是這樣的:
List<ResultA> doProcess(List<MyClassA> A) {
for (MyClassList a : A) {
a.getSomething();
doanotherProcess(a.getxya(), a.getABC());
....
}
return AnotherListOfType_ResultA;
}
是否可以編寫通用的功能呢?
「MyClassA」和「MyClassB」之間是否存在繼承關係?爲什麼你的'doProcess'方法有'List'作爲參數?什麼是「MyClassList」? –
看看[類似問題](http://stackoverflow.com/questions/450807/java-generics-how-do-i-make-the-method-return-type-generic) – LRA
@RohitJain。這些是兩個不同的實體,但具有相似的一組字段進行處理。但不完全相同。 'MyClassList'。它是一個錯字。現在更新。 –