java创建泛型数组运行报错(java.lang.ArrayStoreException: java.lang.String)

本文解析了Java中遇到的ArrayStoreException,重点讲解了如何正确创建泛型数组,避免类型不匹配导致的存储异常。通过实例说明了创建泛型数组的正确方法,并强调了Object与lang包的区别。
摘要由CSDN通过智能技术生成

创建泛型数组运行报错详细:

Exception in thread "main" java.lang.ArrayStoreException: java.lang.String
	at LinearTable.SequenList.SequenceList.insert(SequenceList.java:40)
	at LinearTable.SequenList.SequenceListTest.main(SequenceListTest.java:6)

错误分析:

该错误的具体意思就是说数组存储异常,存储不了,换句话说就是存储的数据不能放到数组中去,该类型的数据不能识别。
调用泛型类时传递的参数类型是自己知道的,不能存储,这种情况大概率是创建泛型数组时出错了。如:

T[] arr = = (T[]) new Objects[capacity];

以上创建泛型数组的方式是错误的,该处创建泛型数组时导入了java.util包下的Objects,是错误的。创建泛型数组时不能直接创建,需要先创建Object类型数组再强制转化为泛型。其中,还有需要特别注意的地方,Object类是java.lang包下的,不是org.omg.CORBA.Object;包下的Object,lang包是不需要导入的。

正确的创建泛型数组:

T[] arr = = (T[]) new Object[capacity];

注意:可以不用导包

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xjitcm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值