在我的Spring启动项目中,我有几种不同的方法,每种方法都用不同的参数调用,但是它们具有相同的元素,动作列表,它们可以是两种类型的对象(ActionCommon或ActionInstance)之一,但是两者都实现了相同的操作界面。但是,尽管使用了上限泛型,但我没有找到合适的方法发现错误,也不知道为什么。
这是一个由几个模块组成的spring boot项目,这是一个使用现有数据模型(我无法编辑)提供新功能的新模块。许多功能都是相同的,但功能之间的唯一区别是参数的数量。
我尝试直接使用接口而不是泛型,但是我的列表使用该接口作为特定对象的列表返回,我无法更改它。
PriceService.java
public interface PriceService {
List<Price> parseActionsToPrices(List<? extends Action> actions, Client client, Offer offer)
List<Price> parseActionsToPrices(List<? extends Action> actions, Client client, Contract contract)
....more functions
}
OfferService.java
public class OfferServiceImpl implements OfferService
@Autowired
PriceService priceService
@Override
public List<Price> getPrices(Client client, Offer offer) {
List<ActionCommon> actions = offer.getActions();
return priceService.parseActionsToPrices(actions, client, offer)
}
}
ContractService.java
public class ContractServiceImpl implements ContractService
@Autowired
PriceService priceService
@Override
public List<Price> getPrices(Client client, Contract contract) {
List<ActionInstance> actions = contract.getActions();
return priceService.parseActionsToPrices(actions, client, contract)
}
}
有问题的用途是
从函数获取ActionCommon或ActionInstance的列表。
使用所述列表和适当的参数调用接口方法。
期望功能返回的结果
相反,我收到了(例如)no suitable method found for parseActionToPrices(List<ActionCommon>, Client, Offer)
错误。
所有方法的结果相同。