import java.util.HashMap;
import java.util.Map;
public class Main
{
public static void main(String[] args)
{
Map<Integer,Class> map=new HashMap<Integer,Class>();
map.put(0,Main.class);
Class[] classes=(Class[])map.values().toArray();
for (Class c:classes)
System.out.println(c.getName());
}
}
Run Code Online (Sandbox Code Playgroud)
我试着在这一行投,Class[] classes=(Class[])map.values().toArray();但得到例外.
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Class;
at Main.main(Main.java:11)
有什么问题?
dac*_*cwe 36
更改:
Class[] classes = (Class[]) map.values().toArray();
Run Code Online (Sandbox Code Playgroud)
至:
Class[] classes = map.values().toArray(new Class[0]);
Run Code Online (Sandbox Code Playgroud)
这提供了有关要转换为哪种类型数组的信息Collection.否则,它返回一个类型的数组Object(并且不能转换为a Class[]).
引用API文档Collection.toArray(T[] a):
返回包含此collection中所有元素的数组; 返回数组的运行时类型是指定数组的运行时类型....
注意toArray(new Object[0])功能相同toArray().
| 归档时间: |
|
| 查看次数: |
8629 次 |
| 最近记录: |