toArray转换踩坑 java.lang.ClassCastException

  1. 问题
List<String> auditOptions = Lists.newArrayList();
//一系列灌数据操作
auditOption.add... String[] options
= (String[]) auditOptions.toArray();
报错信息

java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.String;
([Ljava.lang.Object; is in module java.base of loader 'bootstrap'; [Ljava.lang.String; 
is in unnamed module of loader org.springframework.boot.loader.LaunchedURLClassLoader @51081592)

   2. 解决

    a.查了资料才发现:向上转型不用强转,强转的对象类型必须是需要强转类型的同类型或者子类,所以Object转String是行不通的

    b.又去翻了一下toArray,发现还提供了另一个泛型的方法

     

   3.重试解决

参考:

https://blog.csdn.net/hzj1998/article/details/96004686

https://blog.csdn.net/zjx2016/article/details/78273192

原文地址:https://www.cnblogs.com/rgever/p/14940594.html