【问题标题】:warning: [unchecked] unchecked conversion in JAVA [duplicate]警告:[未选中] JAVA 中未选中的转换 [重复]
【发布时间】:2018-09-08 19:18:25
【问题描述】:

我正在尝试使用邻接列表来实现有向图,其中使用了链表数组。我得到了warning: [unchecked] unchecked conversion,但它运行良好。

import java.util.*;

public class traversal{

static class adList{

private int vertices;

private LinkedList<Integer> vertex[];

adList(int V){

    vertices=V;

    vertex = new LinkedList[V];

    for(int i=0;i<V;i++)
        {
            vertex[i] = new LinkedList<Integer>();
        }


            }


public void insertAlist(int start,int end)
{
    //add an edge from source to destination
    vertex[start].addFirst(end);

    //add an edge from dest to source
    //ob.vertex[end].addFirst(start);

}


public void printAlist()
{
    for(int i=0;i<vertices;i++)
        {
            System.out.print("Node "+ i + " HAS THE CONNECTION WITH NODES ");
            for(Integer x:vertex[i])
                    {

                        System.out.print(x+" ");

                    }
            System.out.println();        
        }

}        

}






public static void main(String[] args)
    {
        adList ob = new adList(4);
        ob.insertAlist(2,3);
        ob.insertAlist(2,0);
        ob.insertAlist(0,2);
        ob.insertAlist(0,1);
        ob.insertAlist(1,2);
        ob.insertAlist(3,3);
        ob.printAlist();
    }

}

我收到以下警告。

.\traversal.java:15: warning: [unchecked] unchecked conversion
    vertex = new LinkedList[V];
             ^
  required: LinkedList<Integer>[]
  found:    LinkedList[]
1 warning

我试过LinkedList&lt;Integer&gt;[],但也没有用。 为什么我会收到此错误?我该如何解决这个问题?

【问题讨论】:

  • 我发现了一个可能对您有帮助的类似问题。 stackoverflow.com/questions/5317443/java-unchecked-conversion
  • 不要混合使用数组和泛型。只需使用列表列表,而不是列表数组。
  • 哦,我更喜欢@AndyTurner 的回答。如果可以,请改用List&lt;List&lt;Integer&gt;&gt;

标签: java arrays


【解决方案1】:

您还需要将泛型类型添加到该行

 vertex = new LinkedList[V];

应该是这样的

 vertex = new LinkedList<Integer>[V];

在类型系统可以确定它应该是哪种类型的情况下,您可以省略实际类型并使用菱形运算符,因此您也应该能够这样做

 vertex = new LinkedList<>[V];

有关取消选中类型转换的更多信息,请查看:Java unchecked conversion

【讨论】:

  • 在问题中:“我试过LinkedList&lt;Integer&gt;[],但也没有用”。
  • 你看到同样的错误了吗?
  • 您收到有关创建泛型数组的编译错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多