码迷,mamicode.com
首页 > 其他好文 > 详细

打卡-反射(三)

时间:2019-05-12 14:07:01      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:获取   元素   next   imp   打卡   时间   out   指定   color   

利用反射实现通用扩展数组长度的方法

 1 import java.lang.reflect.Method;
 2 import java.util.*;
 3 class Person {
 4     public void s(){
 5    System.out.println("测试调用功能");
 6     }
 7 }
 8 class test{
 9     // “反射就是把java类中的各种成分映射成相应的java类”,反射虽然可以逆向控制程序的执行,但这种方式会导致程序运行时间变长,效率降低。
10 //所以在使用反射方法时,要考虑到这对程序运行效率的影响。
11 }
12 public class work_fanse {
13     
14     public static Object goodcopyOf(Object a) {
15         int newLength;
16         Scanner x=new Scanner(System.in);
17         newLength=x.nextInt();
18         Class cl=null;
19         cl=a.getClass();
20         //isArray()判断是否为数组
21         if(!cl.isArray()) {
22             return null;
23         }
24         //数组的class对象的getComponentType()方法可以取得一个数组的Class对象,
25         //通过Array.newInstance()可以反射生成数组对象
26         Class Type=cl.getComponentType();
27         //获取数组长度
28         int length=java.lang.reflect.Array.getLength(a);
29         //创建新的数组
30         Object newArray = java.lang.reflect.Array.newInstance(Type,newLength);
31         //arraycopy()实现将一个数组的指定个数元素复制到另一个数组中 
32         System.arraycopy(a,0,newArray,0,Math.min(length,newLength));
33         return newArray;
34         
35     }
36     public static void main(String[] args) {
37         Object a[]= {1,2,3,4,5};
38         System.out.println(new work_fanse().goodcopyOf(a));
39     }
40 
41 }

 

打卡-反射(三)

标签:获取   元素   next   imp   打卡   时间   out   指定   color   

原文地址:https://www.cnblogs.com/TuTu-winer/p/10851862.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!