java Reflection 反射
来源:互联网 发布:汽车销售app软件 编辑:程序博客网 时间:2024/06/06 00:23
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
/** * @throws ClassNotFoundException * @throws NoSuchMethodException * @throws SecurityException * @throws InstantiationException * @throws IllegalAccessException * @throws IllegalArgumentException * @throws InvocationTargetException * * @desc class 反射对象描述类的语义结构,可以从类对象中获得构造函数,成员变量,方法 * 注解,修饰符等. * 2.可以操纵类就像正常类的操作一样 * * */public static void testReflect() throws ClassNotFoundException,NoSuchMethodException, SecurityException, InstantiationException,IllegalAccessException, IllegalArgumentException,InvocationTargetException {// 类路径String className = "com.saber.reflect.model.Car";// 获得类装载器ClassLoaderClassLoader loader = Thread.currentThread().getContextClassLoader();// 加载类Class<?> clazz = loader.loadClass(className);//使用Class 的静态变量生成 类//Class<?> clazz = Class.forName(className);// 获取无参构造器Constructor<?> cons = clazz.getDeclaredConstructor();// 获取有参构造器//Constructor<?> cons = clazz.getDeclaredConstructor(String.class,//String.class, Double.class);//实例化对象Car car = (Car) cons.newInstance();//获取所有的属性Field[] fields = clazz.getDeclaredFields();for (Field field : fields) {System.out.println(field);}//获取所有的方法Method[] methods = clazz.getDeclaredMethods();for (Method method : methods) {System.out.println(method);}//获得指定名称的方法Method setBrand = clazz.getMethod("setBrand", String.class);setBrand.invoke(car, "BMW");Method setColor = clazz.getDeclaredMethod("setColor", String.class);setColor.invoke(car, "white");Method setPrice = clazz.getDeclaredMethod("setPrice", Double.class);setPrice.invoke(car, 1000000.0);System.out.println(car.toString());}
0 0
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- Java Reflection (JAVA反射)
- 第14周项目2-带姓名的成绩单-(3)
- Sqlite 数据库恢复技术,源代码出售
- 机器学习实战之k-近邻算法(5)--- 完整版约会网站数据分类
- WCF-Address
- POJ3046 Ant Counting 【母函数】
- java Reflection 反射
- SDUT 2894 最短路(SPFA or Bleman)
- 风中奇缘
- Ubuntu-安装配置Mysql
- linux操作的常用指令
- 四舍五入精确算法 遇到5(有时)不进位的问题
- cocos2d-js 编译android apk 用cocos Code IDE 还是 cmd命令
- 递归 --与三角数字,阶乘,变位字,汉诺塔问题,递归的二分查找法,归并排序
- apktool