JavaÖÐtoArrayµÄÓ÷¨Ì½¾¿
Ò»£® 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.ʲôÊÇÐòÁл¯
¶ÔÏóµÄÊÙÃüͨ³£Ëæ×ÅÉú³É¸Ã¶ÔÏóµÄ³ÌÐòµÄÖÕÖ¹¶øÖÕÖ¹¡£ÓÐʱºò£¬¿É ÄÜÐèÒª ½« ¶ÔÏóµÄ״̬±£´æÏÂÀ´£¬ÔÚÐèҪʱÔÙ½«¶ÔÏó»Ö¸´¡£ÎÒÃǰѶÔÏóµÄÕâÖÖÄܼǼ×Ô¼ºµÄ״̬ÒԱ㽫À´ÔÙÉúµÄÄÜÁ¦ ¡£½Ð×÷¶ÔÏóµÄ³ÖÐøÐÔ(persistence)¡£¶ÔÏóͨ¹ýд³öÃèÊö×Ô¼º×´Ì¬µÄÊýÖµÀ´¼Ç¼×Ô¼º £¬Õâ¸ö¹ý³Ì½Ð¶ÔÏóµÄÐòÁл¯(Serialization) ¡£ÐòÁл¯ ......
public class SplitString {
/**
* @param args
*/
public static void main(String[] args) {
String str = "ÖÐZellÖйú5000Äê,Congruations!";
& ......
Java Ò»¹²8ÖÖ»ù±¾ÀàÐÍ£¬4ÖÖÕûÐÍ£¬2ÖÖ¸¡µãÀàÐÍ£¬1ÖÖ±íʾunicode±àÂëµÄ×Ö·ûµ¥ÔªµÄ×Ö·ûÀàÐÍchar£¬1ÖÖ±íÊ¾ÕæÖµµÄbooleanÀàÐÍ¡£
4ÖÖÕûÊýÀàÐÍ
int, 4 ×Ö½Ú
short£¬2×Ö½Ú
long,8×Ö½Ú
byte£¬1×Ö½Ú
2ÖÖ¸¡µãÀàÐÍ
float£¬4×Ö½Ú£¬ºÜÉÙÇé¿öÊʺÏʹÓÃfloat£¬ÊýÖµÓÐÒ»¸öºó׺F,ûÓкó׺µÄ¸¡µãÊýֵĬÈÏΪdouble.Ò²¿ÉÒÔÔÚ¸¡µãÊýÖµºóÃæÌí ......
Javaѧϰ֮· --The Road Of Java Study
JAVAÊÇÒ»ÖÖÆ½Ì¨£¬Ò²ÊÇÒ»ÖÖ³ÌÐòÉè¼ÆÓïÑÔ£¬ÈçºÎѧºÃ³ÌÐòÉè¼Æ²»½ö½öÊÊÓÃÓÚJAVA£¬¶ÔC++µÈÆäËû³ÌÐòÉè¼ÆÓïÑÔÒ²Ò»Ñù¹ÜÓá£Óбà³Ì¸ßÊÖÈÏΪ£¬JAVAÒ²ºÃCÒ²ºÃûʲô·Ö±ð£¬ÄÃÀ´¾ÍÓá£ÎªÊ²Ã´ËûÃÇÄÜ´ïµ½Èç´Ë¾³½ç£¿ÎÒÏëÊÇÒòΪ±à³ÌÓïÑÔÖ®¼äÓй²Í¨Ö®´¦£¬Áì»áÁ˱à³ÌµÄ¾«Ë裬×ÔÈ»Äܹ»×öµ½Ò»Í¨°Ùͨ¡£Èçº ......
¶àÏ̻߳·¾³ÖУ¬±È½ÏÕÆÎÕµÄÊÂÇéÖ®Ò»¾ÍÊÇÈçºÎ·µ»ØÏ̵߳ÄÐÅÏ¢¡£ÒòΪrunºÍstart·½·¨²¢²»·µ»ØÈκÎÖµ¡£
¼ÙÉèÏÖÔÚÓÐÁ½¸öỊ̈߳¬Ö÷Ï̺߳ÍÒ»¸ö×ÓỊ̈߳¬×ÓÏ̶߳ÁÎļþ£¬Ö÷Ïß³ÌÐèÒª¶ÔÎļþµÄ½á¹û½øÐвÙ×÷£¬µ±È»£¬×î¼òµ¥µÄ·½·¨¾ÍÊǶÁÎļþºÍ´¦Àí¶Á³öµÄÎļþÈ«²¿¶¼ÔÚÖ÷Ïß³ÌÖнø
ÐС£
......