java泛型。[Ljava.lang.Object;不能强制转换为[Ljava.lang.String;

java泛型。[Ljava.lang.Object;不能强制转换为[Ljava.lang.String;,java,generics,Java,Generics,由于java泛型的原因,我正在使用truble进行强制转换。有人能帮忙吗 Iterable<String> s = instance.outgoingEdges("Viseu"); ArrayList<String> lf = new ArrayList<>(); for (String x : s) { String[] array = (String[])instance.endVertices(x); f

由于java泛型的原因,我正在使用truble进行强制转换。有人能帮忙吗

Iterable<String> s = instance.outgoingEdges("Viseu");

    ArrayList<String> lf = new ArrayList<>();
    for (String x : s) {
        String[] array = (String[])instance.endVertices(x);
        for (Object v : array) {
            System.out.println(v);
        }
    }

这个问题不是由泛型引起的

问题很简单,
endVertices()
正在返回一个
对象[]
,您不能将
对象[]
强制转换为
字符串[]
。Java不会允许您这样做

如果我理解该代码的意图,那么我认为您应该更改:

    String[] array = (String[]) instance.endVertices(x);

或者只是

    Object[] array = instance.endVertices(x);

显然endVertices不会返回您认为它会返回的结果。显示它。
    Object[] array = (Object[]) instance.endVertices(x);
    Object[] array = instance.endVertices(x);