package Chapter5; import java.lang.reflect.Array; import java.util.Arrays; public class CopyOfTest { /* * ¸øÈÎÒâÀàÐ͵ÄÊý×éÀ©ÈÝ * ²»½ö½öÊǶÔÏóÊý×é * ÒòΪint[]¿ÉÒÔת³ÉObject£¬µ«²»¿ÉÒÔת³É¶ÔÏóÊý×é * * */ public static void main(String[] args) { int[] i={1,2,3}; i=(int[]) copyOf(i,10); System.out.println(Arrays.toString(i)); } public static Object copyOf(Object obj, int newLength){ Class a=obj.getClass(); if(!a.isArray()){ return null; } Class component=a.getComponentType();//·µ»Ø±íʾÊý×é×é¼þÀàÐ͵ÄclassÀ࣬Èç¹û²»ÊÇÊý×飬·µ»Ønull int length=Array.getLength(obj);//ArrayµÄ¾²Ì¬·½·¨£¬µÃµ½length Object newArray=Array.newInstance(component, newLength);//¹¹ÔìеÄÊý×é System.arraycopy(obj, 0, newArray, 0, Math.min(length, newLength)); return newArray; } }