黑马程序员——自学笔记8(反射)

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

反射:就是把Java类中的各种成分(变量、方法、构造方法等)映射成相应的Java类,消耗资源比较多

Constructor类:代表某个类中的构造方法

    //获得String类中的某个构造方法

Constructor[] cons=String.class.getConstructor(StringBuffer.class);

//选择用哪个构造方法

Constructor

cons1= String.class.getConstructor(StringBuffer.class);

//传一个带参数值的StringBuffer对象

String str1=(String)cons1.newInstance(new StringBuffer(“abc”));

Field类:代表某个类中的成员变量

    ReflectPoint pt1=new ReflectPoint(3,5);

    Field f=pt1.getClass().getField(“y”);//把类中的变量y变成f对象

    f.get(pt1);//将类中的变量值赋给f

若成员变量是private的,不能用getField(),暴力获取:

    Field fi=pt1.getClass().getDeclareField();

Method类:代表类中的成员方法

    Method methodCharAt=String.class.getMethod(“charAt”,int.class);

                                                 方法名     参数类型

    methodCharAt.invoke(str1,1);//实现str1.charAt()

                       类对象,参数值

                       (null,1);//调用类中静态方法

    对带有数组参数的成员方法进行反射

       String startingClassName=args[0];

       Method mainMethod=

Class.forName(startingClassName).getMethod(“main”,String[].class);

mainMethod.invoke(null,(Object)new String[]{“111”,“222”,“333”});

Array类:数组的反射类

       getLength(数组名)

       get(数组名,下标)—取指定下标的元素

----------- android培训java培训、java学习型技术博客、期待与您交流! ------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值