gpt4 book ai didi

java - 如何将泛型用于具有不同输入的相同方法

转载 作者:行者123 更新时间:2023-12-01 06:35:19 24 4
gpt4 key购买 nike

private Set<String> extractOfferKeysForAbstractOffers(List<AbstractOfferDto> selectedOffers) {
Set<String> offerKeys = new HashSet<String>();
for (AbstractOfferDto offer : selectedOffers) {
offerKeys.add(offer.getOfferKey());
}
return offerKeys;
}

private Set<String> extractOfferKeysForOffers(List<OfferDto> selectedOffers) {
Set<String> offerKeys = new HashSet<String>();
for (OfferDto offer : selectedOffers) {
offerKeys.add(offer.getOfferKey());
}
return offerKeys;
}

我想使用泛型,而不是使用几乎相同的方法只是输入不同。我是这样创建的。

private <T> Set<String> extractOfferKeysForOffers(List<T> offers) {
Set<String> offerKeys = new HashSet<String>();
for (T offer : offers) {
offerKeys.add(offer.getOfferKey());
}
return offerKeys;
}

但问题是 offer.getOfferKey() 无法识别。报价的唯一选项是 AbstractOfferDtoOfferDto

我如何在此示例中使用泛型?

最佳答案

将抽象类型告诉编译器:

private <T extends AbstractOfferDto> Set<String> extractOfferKeysForOffers(List<T> offers) {
Set<String> offerKeys = new HashSet<String>();
for (T offer : offers) {
offerKeys.add(offer.getOfferKey());
}
return offerKeys;
}

关于java - 如何将泛型用于具有不同输入的相同方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14135821/

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