gpt4 book ai didi

Java Generics WildCard - 如何在此处将泛型与 Lambda 一起使用?

转载 作者:行者123 更新时间:2023-12-02 09:59:28 30 4
gpt4 key购买 nike

我正在尝试创建一个通用方法。我的 dto 是:

public class Master {
private String string;
private Date date;

public String getString() {
return this.string;
}

public Date getDate() {
return this.date;
}

public void setString(String string) {
this.string = string;
}

public void setDate(Date date) {
this.date = date;
}
}

扩展 Master 的我的 Child 类是:

public class Child extends Master {

private Date newDate;

public Date getNewDate() {
return this.newDate;
}

public void setNewDate(Date newDate) {
this.newDate = newDate;
}
}

现在,我想做的是创建一个通用方法来获取 -

public static <T extends Master> Map<String, Map<Date, List<T extends Master>>> getRecalculateMasterMappedByInstrumentIdAndDate(List<T extends Master> masters) {
return masters.stream().collect(Collectors.groupingBy(Child::getString, Collectors.groupingBy(x -> org.apache.commons.lang3.time.DateUtils.truncate(x.getDate(), Calendar.DAY_OF_MONTH))));
}

上面的内容在编译时给我一个错误。我如何为其编写通用方法?

最佳答案

删除声明后的绑定(bind):

  • 返回类型:Map<String, Map<Date, List<T>>>
  • 参数类型:List<T> masters .

只能使用带有通配符 ( ? ) 的边界,或者在类型变量的声明中使用边界。

关于Java Generics WildCard - 如何在此处将泛型与 Lambda 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55745540/

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