概述
----------- 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学习型技术博客、期待与您交流! ------------
最后
以上就是故意大船为你收集整理的黑马程序员——自学笔记8(反射)的全部内容,希望文章能够帮你解决黑马程序员——自学笔记8(反射)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复