我想了解初始化字符串和StringBuffer之間的根本區別 以下代碼正常工作。 (al是一個ArrayList<String>
)StringBuffer數組失敗,其中字符串工作
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)
有人可以幫助我理解其中的邏輯/原因是什麼?目前還不清楚字符串是不可變的。
不變性與它無關。您正在嘗試混合使用數組類型。 – chrylis 2014-09-20 23:22:48