黑马程序员-反射的应用

---------------------- android培训java培训、期待与您交流! ----------------------

反射就是把Java类中的各种成分映射成相应的java类,
一个类中的每个成员都可以用相应的反射API类的一个实例对象来表示

构造方法的反射:
Constructor类代表某个类中的一个构造方法
一个类有多个构造方法,用它们的参数列表的不同,来区分清楚
参数类型也需要用Class实例对象
得到某个类的所有的构造方法:
Constructor constructor[] =Class.forName("java.lang.String").getConstructor();
得到某一个构造方法:
Constructor constructor=Class.forName("java.lang.String").getConstructor(StringBuffer.class);
通过构造方法创建实例对象:
String str =(String)constructor.newInstance(new StringBuffer("abc"))

成员变量的反射:
Field类代表类中的一个成员变量
Fidld f=对象.getClass().getField("变量名")
f不是对象身上的变量,而是类上,要用它去取某个对象上对应的值.
f.get(对象);

成员方法的反射:
Methodlei代表某个类中的一个成员方法.
得到类中的某一个成员方法
Method charAt =Class.forName("java.lang.String").getMethod("charAt",int.class)
调用方法
charAt.invoke(str,1);

数组的反射:
具有相同维数和元素类型的数组属于同一个类型,即具有相同的Class实例对象.
代表数组的Class实例对象的getSuperClass()方法返回的父类为Object类对应的Class.
基本类型的一维数组可以被当做Object类型使用,不能当做Object[]类型使用,非基本类型的一位数组,既可以当做Object类型使用,又可以当做Object[]类型使用.
Arrays.asList()处理int[]时,是将int[]的内存地址放进去
Arrays.asList()处理String[]时,将字符串放入

类加载器加载配置文件
主类名.class.getClassLoader().gerRseourceAsStream(配置文件名);
配置文件需要和.class文件放在同一个文件夹下

---------------------- android培训java培训、期待与您交流! ----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值