gpt4 book ai didi

java - 需要一些关于这个通用 Java 的帮助

转载 作者:太空宇宙 更新时间:2023-11-04 08:44:03 26 4
gpt4 key购买 nike

我试图使这段代码尽可能通用,但我坚持在最后一部分。这是我的代码被调用的地方:

List<Integer> NewList = map(OriginalList, new IFunction<Integer>(){         
public <T extends Number> int execute(T anInt){
return anInt.intValue() + 1;
}
});

然后我有方法图:

public static <T> List<Integer> map(List<T> c, IFunction<T> f) {     
List<Integer> TempList = new ArrayList<Integer>();
for (T o : c){
TempList.add(f.execute(o));
}
return TempList;
}

和接口(interface)IFunction:

public interface IFunction<T> {     
public <T extends Number> int execute(T o);
}

我的错误是在 Map() 中,它显示 TempList.add(f.execute(o));我试图将 TempList 声明为 T 类型,并执行方法以返回 T 类型的递增数字。

每次我修复代码的一部分时,我似乎都破坏了另一部分。理想情况下,所有参数都是通用的,除了我调用代码的地方之外,任何地方都不会出现“整数”

最佳答案

您需要在 map() 方法中约束您的参数:

public static <T extends Number> List<Integer> map(List<T> c, IFunction<T> f) {     
...

否则f.execute()会提示参数的类型可以是任何类型,并且它需要一个Number

关于java - 需要一些关于这个通用 Java 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707894/

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