2017-08-27 65 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

相关问题