【JDBC】集合、反射和泛型复习-2
反射: Reflection正常情况下我们都是先写好类,在类中定义好类的属性和方法,然后再去使用这个类里的方法和设置它的属性:先知道类信息(类里有些什么属性和方法) ---------- 创建对象 ---------- 使用类里属性和方法先什么都不知道(类里有些什么属性和方法都不知道) ---------- 不知道类信息情况系下获得对象 ---------- 最后知道类的信息并且能修改类里的属性还能调用类里的方法(这种技术就是反射技术)Java里有一个类叫Class它是一切类的反射根源比如:人----------------可以定义一个Person类(定义姓名,年龄,性别....)比如:车----------------可以定义一个Car类(定义品牌,颜色,车价格....)但是:类?----------------Class类(类名,构造方法,属性,方法)得到Class类的对象有三种方式Object类中的getClass()方法类.class通过Class类的forName()方法Class的一些常用方法①通过Class类信息来创建对象: newInstance()知道有个类的包全名:cn.ybzy.CatClass catClass Class.forName(cn.ybzy.Cat);Cat cat (Cat)catClass.newInstance();②通过Class类信息获取和使用构造方法: getConstructors()和getConstructor()Constructor[] cs catClass.getConstructors();//每一个Constructor就代表一个Cat类的构造方法Constructor c catClass.getConstructor(String.class,Integer.class);Cat cat (Cat)c.newInstance(xiaobai,2);③获取类的包名getPackage().getName();④获取类的所有public方法: Method[] getMethods(); 和getMethod(str)⑤获取到的所有public字段: Field[] getFields()⑥获取所有的方法: Method[] getDeclaredMethods(); //包括private调用得到的方法//能获取private属性值,前提:method.setAccessible(true);//忽略访问修饰符的限制检查method.invoke(cat,方法参数);⑦获取所有属性: Field[] getDeclareFields(); //包括private获取值://能获取private属性值,前提:field.setAccessible(true);//忽略访问修饰符的限制检查field.get(cat); // 获取cat对象上的这个属性值field.set(cat,小白); // 给获取到的cat对象的这个属性赋值
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2410347.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!