2017-08-27 74 views
-1

任何人都可以請在下面的語句中指出我錯過了什麼?
警告1爲什麼我得到警告[unchecked] unchecked轉換?

prog.java:16: warning: [unchecked] unchecked conversion 
     adj = new LinkedList[v]; 
      ^
    required: LinkedList<Integer>[] 
    found: LinkedList[] 

警告2

prog.java:18: warning: [unchecked] unchecked conversion 
      adj[i] = new LinkedList(); 
        ^
    required: LinkedList<Integer> 
    found: LinkedList 

警告3

prog.java:43: warning: [unchecked] unchecked call to push(E) as a member of the raw type Stack 
     stack.push(new Integer(v)); 
       ^
    where E is a type-variable: 
    E extends Object declared in class Stack 

幫我提前
恢復此warning.ThanksPC: - keep_smiling

回答

0

警告1和2的出現是因爲你不使用泛型properly.Cast您的LinkedList的泛型類型,而不是原始類型如LinkedList <Integer>.

我不能告訴第三,你應該提供代碼溫和。

+0

Thanks.How我更改此行我的代碼來恢復此警告? –

+0

更改爲LinkedList

0

因爲您正在使用通用數據結構,並且您的變量與您收到警告的確切泛型類型不匹配。爲了更加準確,它發生在右側泛型類型不相同或左側泛型類型的子類型時。

例如,如果您有:

List<String> x; 

如果你做這樣的事情:

x = new ArrayList(); 

,你會得到一個unchecked警告,因爲x的泛型類型,即String,是不是相同或超類型的右側通用類型Object這是列表的默認值。

+0

我實際上使用this.but仍然顯示警告** MyCode **'私人LinkedList adj []; adj = new LinkedList [V];' –

+0

'adj = new LinkedList [V]'與'adj = new LinkedList [V]'相同,而Object不是'Integer'的子類型 – alirabiee

相關問題