Java反射小练习
来源:互联网 发布:二本学校当老师 知乎 编辑:程序博客网 时间:2024/05/17 04:57
package Administrate;public class okjbvc { private String name; private int age; private String G; public okjbvc(){ } private okjbvc(String name,int age,String G){ setName(name); setAge(age); setG(G); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getG() { return G; } public void setG(String g) { G = g; }}
package Administrate;import java.io.File;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.lang.String;import java.util.Calendar;import javax.activation.FileDataSource;public class Test { public static void main(String[] args){ Class cla; try { /*okjbvc ok=new okjbvc();//第一种写法 Class cla=ok.getClass();*/ //第二种写法:根据class路径获取 cla = Class.forName("Administrate.okjbvc"); //获取该类所有属性 Field[] field = cla.getDeclaredFields(); System.out.println("属性"); for (Field F : field) { System.out.println(F); } System.out.println("set/get封装"); //获取该类所有set/get封装 Method[] Method = cla.getDeclaredMethods(); for (Method M : Method) { System.out.println(M); } System.out.println("构造方法"); //获取该类所有构造方法 Constructor[] Constructor = cla.getDeclaredConstructors(); for (Constructor C : Constructor) { System.out.println(C); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { Class cla1=Class.forName("Administrate.okjbvc"); Constructor Const=cla1.getDeclaredConstructor(String.class,int.class,String.class); Const.setAccessible(true);//如果该方法是private,true是变为public,flase是改为private okjbvc ok=(okjbvc)Const.newInstance("你我他",88,"岁"); System.out.println(ok.getName()+ok.getAge()+ok.getG()); okjbvc o = new okjbvc(); Field Field=cla1.getDeclaredField("name"); Field.setAccessible(true); Field.set(o, "你我他"); System.out.println(o.getName()); Method ME=cla1.getMethod("setName", String.class); ME.invoke(o, "oo"); System.out.println(o.getName()); } catch (ClassNotFoundException e) { System.out.println("找不见的类路径"); e.printStackTrace(); } catch (NoSuchMethodException e) {//调用不到方法 e.printStackTrace(); } catch (SecurityException e) { //安全异常 e.printStackTrace(); } catch (InstantiationException e) {//实例化异常 e.printStackTrace(); } catch (IllegalAccessException e) {//非法访问异常 e.printStackTrace(); } catch (IllegalArgumentException e) {//非法论点异常 e.printStackTrace(); } catch (InvocationTargetException e) {//调用目标异常 e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } }}
0 0
- Java反射小练习
- Java反射小练习
- 反射小练习
- 反射小练习
- golang反射小练习
- 反射——小练习
- JAVA 反射练习
- java反射机制--练习
- java反射练习
- java反射练习
- java反射练习02
- java课堂练习,反射
- java反射初级练习
- java反射练习
- Java之反射--练习
- java 反射小例
- java反射小例子
- java反射小例子
- jsp页面加入头部以及底部,设置背景
- Android Studio快捷键与小技巧(一)
- 配置jdk的环境变量
- 【转】console.log 用法
- 顺序栈和链栈
- Java反射小练习
- 强大的 Fresco(加载网络和本地图片)简单使用
- 线性筛和素性测试
- 属性描述符
- 50个PHP程序性能优化的方法
- 在WMware Workstation 12 Pro上安装及初步配置64位Ubuntu桌面系统
- gcc编译过程
- 空间算法工具类SpaceUtils
- HDU 2041 超级楼梯