import java.util.*;public class stack1{
public static void main(String[]args){
Stack<Double> sc=new Stack <Double>();
double a=10;
double b=20;
sc.push(a);
}
}
我的JDK版本是1.42的,为什么我把栈定义成Double类型时(或其它类型),用上面的方法不行?括号之类的该怎么加?
public static void main(String[]args){
Stack<Double> sc=new Stack <Double>();
double a=10;
double b=20;
sc.push(a);
}
}
我的JDK版本是1.42的,为什么我把栈定义成Double类型时(或其它类型),用上面的方法不行?括号之类的该怎么加?
Stack sc=new Stack();
double a=10; //注意跟下行的区别double and Double
Double b=new Double(20);
sc.push(new Double(a));
sc.push(b);
System.out.println(sc.pop());
System.out.println(sc.pop());我猜想1.4的栈不支持直接push/pop基本类型,所以要转化成类,如Double,Integer等等
1.5应该就是加了一层封装,支持直接push/pop基本类型,但要像你上面那样加<Double>
相当于我上面代码new Double(a)这一步给封装好了.
即使在1.5中,也是不可以这么做的
Stack<Integer> sc=new Stack <Integer>();
double a=10;
sc.push(a);大概是因为没有从double到Integer的构造器吧
间接辅证了我上面的推论走人了
其它的明天再说了