1. 程式人生 > >泛型集合物件初始化

泛型集合物件初始化

標準定義:

//但是在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   會自動拆箱

講道理不該報錯,此處很迷糊  有想法同學可以留言交流