问题描述
在Java中,什么时候使用
Stack<Integer> st = new Stack<Integer>();
以及何时使用
Stack st = new Stack();
对于Stack st = new Stack()
,我将不得不创建自己的类Stack
,除了它们之间是否还有其他特定区别?
解决方法
何时使用
Stack st = new Stack();
?
从不。这种样式早于Java中泛型的存在。它已完全替换为通用用法,即Stack<Integer>
。有时您需要使用后期绑定,并且不知道哪种类型将存储在堆栈中。但是即使那样,您仍然应该使用通配符,例如Stack<?>
。
如果您使用通用类而不指定通用参数,则现代IDE会警告您。
我将必须创建自己的课程
Stack
您不能,您可以非通用地使用通用的Stack
类(即java.util.Stack<T>
)。 Java允许(对于 any 泛型类,而不仅限于Stack
)。但是不鼓励,请参见上文。