JavaÖÐtoArrayµÄÓ÷¨Ì½¾¿(javaÊý×éÓëlistת»»)
Ò»£® Incident
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
String[] tt =(String[]) list.toArray(new String[0]);
}
}
Õâ¶Î´úÂëÊÇûÎÊÌâµÄ£¬µ«ÎÒÃÇ¿´µ½String[] tt =(String[]) list.toArray(new String[0]) ÖеIJÎÊýºÜÆæ¹Ö£¬È»¶øÈ¥µôÕâ¸ö²ÎÊýnew String[0]È´ÔÚÔËÐÐʱ±¨´í¡£¡£¡£
¶þ£® Root Cause Analysis
¾Ñо¿·¢ÏÖtoArrayÓÐÁ½¸ö·½·¨£º
public Object[] toArray() {
Object[] result = new Object[size];
System.arraycopy(elementData, 0, result, 0, size);
return result;
}
²»´ø²ÎÊýµÄtoArray·½·¨£¬Êǹ¹ÔìµÄÒ»¸öObjectÊý×飬Ȼºó½øÐÐÊý¾Ý¿½±´£¬´Ëʱ½øÐÐתÐ;ͻá²úÉúClassCastException£¬ÕâÒ²¾ÍÊÇÉÏÊöÎÊÌâµÄroot causeÁË¡£
public Object[] toArray(Object a[]) {
if (a.length < size)
a = (Object[])java.lang.reflect.Array.newInstance(a.getClass().getComponentType(), size); System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
¶ø
Ïà¹ØÎĵµ£º
1¡¢ÐòÁл¯ÊǸÉʲôµÄ£¿
¼òµ¥Ëµ¾ÍÊÇΪÁ˱£´æÔÚÄÚ´æÖеĸ÷ÖÖ¶ÔÏóµÄ״̬£¨Ò²¾ÍÊÇʵÀý±äÁ¿£¬²»ÊÇ·½·¨£©£¬²¢ÇÒ¿ÉÒ԰ѱ£´æµÄ¶ÔÏó״̬ÔÙ¶Á³öÀ´¡£ËäÈ»Äã¿ÉÒÔÓÃÄã×Ô¼ºµÄ¸÷ÖÖ¸÷ÑùµÄ·½·¨À´±£´æobject states£¬µ«ÊÇJava¸øÄãÌṩһÖÖÓ¦¸Ã±ÈÄã×Ô¼ººÃµÄ±£´æ¶ÔÏó״̬µÄ»úÖÆ£¬ÄǾÍÊÇÐòÁл¯¡£
2¡¢Ê²Ã´Çé¿öÏ ......
²âÊÔ»·¾³£º
SDK£ºOracle JRockit for Java version 6, Java Communication for Windows 2.0
OS£ºWINDOWS7
ÍâÉ裺´®¿ÚÌõÐÎÂëɨÃèǹ
Server£ºTomcat6
¿´ÁËÍøÉÏÁ¼Ý¬²»ÆëµÄ¹ØÓÚApplet·ÃÎÊ´®¿ÚµÄÎÄÕ£¬×ܽáÆðÀ´Ëù¹Ø×¢µÄÎÊÌâÎÞÍâºõÒÔÏÂ3¸ö£º
1. Èý¸öÎļþ£¨comm.jar¡¢javax.comm.propertiesºÍwin3 ......
ÏÂÃæµÄ³ÌÐò½«´òÓ¡Ò»¸öµ¥´Ê£¬ÆäµÚÒ»¸ö×ÖĸÊÇÓÉÒ»¸öËæ»úÊýÉú³ÉÆ÷À´Ñ¡ÔñµÄ¡£ÇëÃèÊö¸Ã³ÌÐòµÄÐÐΪ£º
import java.util.Random;
public class Rhymes {
private static Random rnd = new Random();
public static void main(String[] args) {
StringBuffer word = null;
switch(rnd.nextInt(2)) {
......
ת×Ô£ºhttp://hi.baidu.com/wqj403/blog/item/149957345cd6a11891ef3976.html
ÓÃjavaÔõôÌáÈ¡»òÊǽâѹrarѹËõÎĵµ£¿ÒÔǰ²éÁ˺ܶàµÄ×ÊÁÏ£¬Ã»ÓÐÕÒµ½Ïà¹ØµÄµÚÈý·½¿â£¬ÍøÉϲéÕÒµÄ×ÊÁÏ˵ÊǽâÎörarÖ»Äܸü¼ÓrarµÄÃüÁîÐвÎÊýÀ´½âÎö¡£ÒòΪrarѹËõÎĵµµÄÄÚ²¿½á¹¹ÊÇûÓй²¿ªµÄ¡£ËùÒÔûÓÐרÃŵĽâÎö¿â³ÌÐò¡£×Ô¼ºÒ²¾ÍÖ»ºÃÓÃÃüÁîÐÐÁË£¬µ« ......