我有这个代码:
import java.util.*;
import java.lang.*;
import java.io.*;
class Main{
public static void main (String[] args){
Foo<String> foo = new Foo<String>(1000);
}
}
class Foo<Key extends Comparable<Key>>{
private Entry[] a;
private class Entry{
Key key;
}
public Foo(int size){
a = (Entry[])new Object[size]; // <- this is the problem
}
}
当我编译它时,我得到一个错误,说:
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [LFoo$Entry;
at Foo.<init>(Main.java:17)
at Main.main(Main.java:7)
我试过:
import java.util.*;
import java.lang.*;
import java.io.*;
class Main{
public static void main (String[] args){
Foo<String> foo = new Foo<String>(1000);
}
}
class Foo<Key extends Comparable<Key>>{
private Entry[] a;
private class Entry{
Key key;
}
public Foo(int size){
a = new Entry[size];
}
}
但后来我收到一条错误消息:
Main.java:17: error: generic array creation
a = new Entry[size];
^
是否可以创建该数组?