我试图转换和数组int到List然而每次我尝试我得到编译错误.
List<Integer> integers = toList(draw.getToto6From49().getFirstRound());
// getFirstRound() returns int[] ;
Run Code Online (Sandbox Code Playgroud)
这是我的toList方法
public class ArraysUtil {
public static <T> List<T> toList(T[] ts) {
List<T> ts1 = new ArrayList<>();
Collections.addAll(ts1, ts);
return ts1;
}
}
Run Code Online (Sandbox Code Playgroud)
java:com.totoplay.util.ArraysUtil类中的方法toList不能应用于给定的类型;
required: T[]
found: int[]
reason: inferred type does not conform to declared bound(s)
inferred: int
bound(s): java.lang.Object
Run Code Online (Sandbox Code Playgroud)
是的,基本上你不能这样做.您期望能够toList使用类型参数调用int,并且Java不允许将基元用作类型参数.对于你想要处理的每个原语,你基本上需要一个不同的方法,例如
public static List<Integer> toList(int[] ts) {
List<Integer> list = new ArrayList<>(ts.length);
for (int i in ts) {
list.add(i);
}
}
Run Code Online (Sandbox Code Playgroud)
至少,Java 7及以前就是这种情况.在Java 8中,它稍微简单一些:
int[] array = { 1, 2, 3 };
IntStream stream = Arrays.stream(array);
List<Integer> list = stream.boxed().collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |