【发布时间】:2023-03-14 04:15:01
【问题描述】:
我试图了解初始化 Strings 和 StringBuffer 之间的根本区别
以下代码工作正常。 (al 是 ArrayList<String>)
String[] sa = new String[al.size()];
System.arraycopy(al.toArray(), 0, sa, 0, al.size());
但是,当我使用 StringBuffer 数组时,它不会工作。
StringBuffer[] sa = new StringBuffer[al.size()];
System.arraycopy(al.toArray(), 0, sa, 0, al.size());
它给了我以下异常
java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at practice.ArrayListDemo.main(ArrayListDemo.java:34)
有人可以帮我理解逻辑/原因吗?目前尚不清楚字符串是不可变的有何不同。
【问题讨论】:
-
不变性与它无关。您正在尝试混合数组类型。
标签: java string exception stringbuffer