标准定义:
//但是在jdk1.7以后 后面的泛型可以不用写,编译器会自动补充(某些情况下失效);
Stack<Integer> stack=new Stack<Integer>();
今天写代码时特意测试了一下泛型集合初始化的两种方法
Stack<Integer> stack=new Stack(); //jdk1.7 以后可用
Stack stack=new Stack<Integer>(); //声明类型默认是Object,但指定String是Object的子类,所以可以转
//这两种定义虽说某些情况都能运行 但是第二种可能不适用于某些情况,推荐使用第一种
我在代码里使用第二种定义时报错:
error: bad operand types for binary operator '>'
代码如下
class Solution {
public void test(int[] nums1, int[] nums2) {
/*定义整数 与栈顶元素比较大小
*/
int num=2;
Stack stack=new Stack<Integer>();
Stack.push(1);
if(num > stack.peek() ) System.out.println("可以使用" );
}
}
后进行如下工作:
1.获取栈顶元素类名发现为 Integer
2.已知大于号 两边一个是int 一个是Integer 会自动拆箱
讲道理不该报错,此处很迷糊 有想法同学可以留言交流