Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
来源:互联网 发布:西语翻译软件 编辑:程序博客网 时间:2024/06/10 23:35
public class Test { public static void main(String[] args) { System.out.println(new CountingGenerator.String(12).next()); List<Integer> list=new ArrayList<Integer>(); list.add(new Integer(1)); list.add(new Integer(2)); Integer[] c = {1,3,3}; //throw an exception: c = (Integer[]) list.toArray(); }}
I wonder why this happened ? Integer is a subclass of Object,so it should be Ok instead! please answer me deeply! I want know why? what's the principle ?
回答:
up vote3down voteunaccept
Change the line
c=(Integer[]) list.toArray();
to
c= list.toArray(c); // add c as parameter
In your list.toArray();
returns Object[]
and JVM doesn't know how to blindly downcast Object[]
to Integer[]
.
public Object[] toArray() //return Object type arraypublic <T> T[] toArray(T[] a) //Returns an array containing all of the elements in this collection; the runtime type of the returned array is that of the specified array
Java Docs
0 0
- Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
- [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to ]
- java.lang.String cannot be cast to [Ljava.lang.Object
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- java.lang.String cannot be cast to [Ljava.lang.Object
- java.lang.String cannot be cast to [Ljava.lang.Object;
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- java.lang.String cannot be cast to [Ljava.lang.Object
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- Ljava.lang.Object; cannot be cast to form A(实体)
- Ljava.lang.Object; cannot be cast to java.util.Map
- java.math.BigDecimal cannot be cast to [Ljava.lang.Object;
- [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;报错解决方法
- 感悟_电商技术服务
- MD5介绍及相关应用
- Java中,一个接口可以extends多个接口
- android的ExpanableListView的一点实用小经验
- JSP的一些问题及解决办法
- Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer;
- [ASP.NET]连接字符串
- js异步之惑
- androidannotations使用时的一些问题的记录以及获取签名的MD5
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- 快速幂取模算法
- 服务器tomcat接受请求,中文与空格处理
- 大数相减C++实现
- iPhone开发之深入浅出Object-C之消息