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;
}
¶ø
Ïà¹ØÎĵµ£º
Ò»Ö±¾õµÃËùÓеÄÓïÑÔÖÐJavaÊÇ×îºÃµÄ£¬¾Í¿ªÊ¼Ñ§ÁËÆðÀ´¡£Ï£Íû¼ÇÏÂÕâЩ£¬¶Ô×Ô¼ººÍÒÔºóµÄѧϰÕßÓаïÖú£¡µ±È»ÕâÖ»ÊÇÎÒ¸öÈ˵ÄÒ»µãѧϰ¸ÐÎò£¬´óÅ£µ½´Ë¿ÉÈÆ¹ý£¬ÈçÓп´·¨£¬²»Áߴͽ̡£
Ò»ÃÅÓïÑÔ»ù±¾µÄÂß¼½á¹¹ºÍÀàÐÍ»ù±¾ÊÇÒ»ÑùµÄ¡£ËùÒÔÎÒÈÏΪJavaÓïÑԵĻù´¡Ñ§Ï°Ó¦¸Ã´Ó ......
1¡¢ÐòÁл¯ÊǸÉʲôµÄ£¿
¼òµ¥Ëµ¾ÍÊÇΪÁ˱£´æÔÚÄÚ´æÖеĸ÷ÖÖ¶ÔÏóµÄ״̬£¨Ò²¾ÍÊÇʵÀý±äÁ¿£¬²»ÊÇ·½·¨£©£¬²¢ÇÒ¿ÉÒ԰ѱ£´æµÄ¶ÔÏó״̬ÔÙ¶Á³öÀ´¡£ËäÈ»Äã¿ÉÒÔÓÃÄã×Ô¼ºµÄ¸÷ÖÖ¸÷ÑùµÄ·½·¨À´±£´æobject states£¬µ«ÊÇJava¸øÄãÌṩһÖÖÓ¦¸Ã±ÈÄã×Ô¼ººÃµÄ±£´æ¶ÔÏó״̬µÄ»úÖÆ£¬ÄǾÍÊÇÐòÁл¯¡£
2¡¢Ê²Ã´Çé¿öÏ ......
JavaÏß³Ìͬ²½»úÖÆsynchronized¹Ø¼ü×ÖµÄÀí½â
¹Ø¼ü×Ö: Ïß³Ì synchronized
ÎÄÕ³ö´¦£ºhttp://tech.it168.com/j/2008-01-30/200801302324557.shtml
×÷ÕߣºÀ´×ÔITPUBÂÛ̳
Ïß³Ìͬ²½£º
¡¡¡¡ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁË ......
javaÖг£ÓõÄÊý¾Ýת»»
ǰЩÌìÔÚÏîÄ¿ÖÐÓöµ½ÁËCalenderºÍDateµÄÏ໥ת»»ÎÊÌ⣬Ȼºó¾Í²éÁËһЩ×ÊÁÏ¡£ÕûÀíÁËһЩÏà¹ØµÄ³£ÓÃת»»£¬ºÍ´ó¼Ò·ÖÏíÏ£º
1. Java°ü×°ÀࣺÔÚ½éÉܾßÌåµÄÊý¾ÝÀàÐÍת»»Ö®Ç°£¬ÎÒÃÇÓбØÒªÏȽéÉÜjavaÖеÄÒ»¸öÌØÊâµÄ²ð×°ÏäÀàÐÍ----java°ü×°Àà¡£
• Java°ü×°Àà³öÏÖµÄÄ¿µÄ£ºÎªÁËÄܹ»Ê¹java³ÌÐòÔ±¿ÉÒÔ½«ja ......
package sort;
import java.util.Random;
/**
* ÅÅÐò²âÊÔÀà
*
* ÅÅÐòËã·¨µÄ·ÖÀàÈçÏ£º 1.²åÈëÅÅÐò£¨Ö±½Ó²åÈëÅÅÐò¡¢ÕÛ°ë²åÈëÅÅÐò¡¢Ï£¶ûÅÅÐò£©£» 2.½»»»ÅÅÐò£¨Ã°ÅÝÅÝÅÅÐò¡¢¿ìËÙÅÅ ......