我有两个相似的对象(实际上是实体)。从一个函数中,我得到其中一个。所以我知道我只在运行期间得到哪一个。动态返回类型 - 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'。它是一个错字。现在更新。 –