AJN*_*AJN 8 java generics java-8
我有一个场景,其中两个函数完全相似,但两者中使用的Class对象不同,类似这样,
public int function1(inputObject input){
LeadMaster lead= input.getLeadMaster();
PropertyUtils.setProperty(lead, input.getKey(), input.getValue());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
和其他功能一样,
public int function2(inputObject input){
DealMaster deal= input.getDealMaster();
PropertyUtils.setProperty(deal, input.getKey(), input.getValue());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何在上面的对象中使用泛型对象的泛型类?我还没有使用泛型.
如果希望您的方法使用inputObject该类的任何属性,您可以传递一个返回给定inputObject实例的必需属性的函数接口:
public <T> int function(inputObject input, Function<inputObject,T> func) {
T obj = func.apply(input);
PropertyUtils.setProperty(obj, input.getKey(), input.getValue());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在你可以用这个方法调用
function(input,inputObject::getLeadMaster);
Run Code Online (Sandbox Code Playgroud)
要么
function(input,inputObject::getDealMaster);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |