gpt4 book ai didi

java - 使用通用类型实现相同的功能

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:49:41 26 4
gpt4 key购买 nike

我有一个场景,两个函数完全相似,但两者使用的 Class 对象不同,类似这样,

public int function1(inputObject input){
LeadMaster lead= input.getLeadMaster();
PropertyUtils.setProperty(lead, input.getKey(), input.getValue());
return 0;
}

和类似的其他功能一样,

public int function2(inputObject input){
DealMaster deal= input.getDealMaster();
PropertyUtils.setProperty(deal, input.getKey(), input.getValue());
return 0;
}

如何在上述对象中使用主对象的通用类?我还没有使用过泛型。

最佳答案

如果您希望您的方法使用 inputObject 类的任何属性,您可以传递一个函数接口(interface),该接口(interface)返回给定 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;
}

现在你可以调用这个方法了

function(input,inputObject::getLeadMaster);

function(input,inputObject::getDealMaster);

关于java - 使用通用类型实现相同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47054609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com