泛型集合物件初始化
阿新 • • 發佈:2018-12-09
標準定義:
//但是在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 會自動拆箱
講道理不該報錯,此處很迷糊 有想法同學可以留言交流