Java 泛型类型推理不起作用?
玩游戏,走了这么远。问题在于Java 泛型类型推理不起作用?,java,generics,Java,Generics,玩游戏,走了这么远。问题在于收集器。toList被拒绝,类型不兼容- /** *一般对项目。 * *@param-该对中第一项的类型。 *@param-第二项的类型。 */ 静态类对{ 最终P; 最终Q; 公共对(P,Q){ 这个,p=p; 这个。q=q; } @凌驾 公共字符串toString(){ 返回“{p+”,“+q+”}”; } } /** *获取数组中存在的第n项,否则返回null。 * *@param a-数组 *@param n-我们想要阵列中的哪一个。 *@param-数组项的
收集器。toList
被拒绝,类型不兼容-
/**
*一般对项目。
*
*@param-该对中第一项的类型。
*@param-第二项的类型。
*/
静态类对{
最终P;
最终Q;
公共对(P,Q){
这个,p=p;
这个。q=q;
}
@凌驾
公共字符串toString(){
返回“{p+”,“+q+”}”;
}
}
/**
*获取数组中存在的第n项,否则返回null。
*
*@param a-数组
*@param n-我们想要阵列中的哪一个。
*@param-数组项的类型。
*@return-数组中的第n个条目,如果不存在,则为null。
*/
私有静态tn(T[]a,int n){
返回n-数组中元素的类型。
*@param-“Q”数组中元素的类型。
*@返回每个元素的“对”列表。
*/
静态列表pairUp(P[]ps,Q[]qs){
返回IntStream.range(0,数学最大值(ps.length,qs.length))
.mapToObj(i->新对(n(ps,i),n(qs,i)))
.collect(Collectors.toList());
}
/**
*在分隔符上拆分两个字符串,并返回对应项对的列表。
*
*@param a-第一个字符串。
*@param b-第二个字符串。
*@param separator-分隔符。
*@return-来自'A'和'b'的成对条目列表。
*/
私有静态列表折叠(字符串a、字符串b、字符串分隔符){
返回pairUp(a.split(分隔符,-1),b.split(分隔符,-1));
}
公开无效测试(){
System.out.println(折叠(“1;2;3;4”,“Value1;Value2;Value空白“,;”));
}
我是否把推理规则拉得太远了?如何修复此问题?将菱形运算符添加到
对构造函数中
new Pair<>(n(ps, i), n(qs, i))
新的一对(n(ps,i),n(qs,i))
将菱形运算符添加到对
构造函数
new Pair<>(n(ps, i), n(qs, i))
新的一对(n(ps,i),n(qs,i))
有关原因,请参阅。有关原因,请参阅。