我正在尝试为一个名为的类编写一个简单的程序,该类Number
需要一个通用参数。我的想法是我想将这些存储起来Number
,List
以便我可以遍历它并找到总和。
我的列表将是 [2,3.4,4,5] 类型。那是 int, doubles 的混合。我当前的代码在 import java.util.* 下面;
class Number<T> {
T n;
Number(T n) {
this.n=n;
}
public T getnumber(){
return n;
}
public String toString() {
return n.toString();
}
}
public class GenericsWildcards {
public static void main(String[] args) {
Number num1=new Number(5);
Number num2= new Number(5.4);
Number num3=new Number(1.2);
List<Number> list=new ArrayList<Number>();
list.add(num1);
list.add(num2);
list.add(num3);
System.out.println(list);//prints correctly
double sum=0;
for (Number i : list){
sum+=i.getnumber();//compile error here
}
System.out.println("sum is "+ sum);
}
}
sysout 正确打印列表,但我无法打印,getnumber
因为它返回 type Object
。我试着把它加倍,sum+=(Double)i.getnumber();
但仍然没有帮助。我怎样才能解决这个问题?非常感谢任何改进更好实施的想法。谢谢