打卡-反射

Posted tutu-winer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打卡-反射相关的知识,希望对你有一定的参考价值。

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

 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 }

 

以上是关于打卡-反射的主要内容,如果未能解决你的问题,请参考以下文章

第124天学习打卡(知识点回顾 反射 Class类)

第41题JAVA高级技术-反射实战1(动态实例化类)

第42题JAVA高级技术-反射实战2(动态调用类中方法)

第43题JAVA高级技术-反射实战3(动态设置类的私有属性)

为啥我的 Ray March 片段着色器反射纹理查找会减慢我的帧速率?

学习Java必备的基础知识打卡12.29,要想学好必须扎实基本功(⭐建议收藏)#yyds干货盘点#