黑马程序员技术交流社区

标题: 【石家庄校区】Java学习笔记_反射 [打印本页]

作者: CHNing    时间: 2018-4-23 16:26
标题: 【石家庄校区】Java学习笔记_反射
本帖最后由 小石姐姐 于 2018-4-25 17:13 编辑

反射
1.3中获取字节码(Class)对象方式
   类型.class属性
   实例对象.getClass()
   Class.forName("类名地址");
2.Class
   Constructor需要导包:java.lang.reflect.Constructor;
   Constructor[]         getConstructors()                        获取所有(public)构造方法,不包括私有
   Constructor[]        getDeclaredConstructors()        获取所有构造方法,包括私有
   Constructor        getConstructor(class<?>...parameterTypes)                        获取一个(public)构造方法(根据传入参数获取构造)
   Constructor        getDeclaredConstructor(class<?>...parameterTypes)        获取一个私有构造方法(根据传入参数获取构造)
   Field                        getField(String name)                获取指定成员变量
   Field[]                getFields()                                获取全部成员变量
   Field[]                getDeclaredFields()                        获取全部成员变量(包括私有)
   Method                getMethod(String name,Class<?> ...parameterTypes)                                获取指定成员方法
   Method[]                getMethods()                                获取全部public方法
3.Constructor        (构造方法类)
方法:
   T         newInstance()                                                        获取一个构造方法
   T        newInstance(Object ...initargs)                                如果Constructor构造是有参数,这个传入参数必须和Constructor参数一致
4.Field        (成员变量类)
方法:
   setAccessible(boolean flag)                                设置安全检查,屏蔽后可以获取私有成员
   set(object obj,Object value)                                        obj要修改的对象,value修改成什么值(不包括私有)
   get(object obj)                                                        获取obj对象的成员变量
5.Method
   Invoke(Object obj,Object ...args)                                        执行指定对象,[可选]并传入参数        
6.JAVA Bean
  是一种规范
7.BeanUtils
   jar是java的压缩包
导入jar包:
   1.创建lib文件夹
   2.把jar文件放到lib文件下
   3.选中jar包,右键Build Path ==>
删除jar包:
   1.删除时必须先删除引用中的jar包,在删除lib文件夹下jar包
类:
   BeanUtils
方法:
   setProperty(Object bean,String name,Object value)                                修改指定对象属性值
   String getProperty(Object obj,String name)获取指定对象属性值
   setProperty和getProperty底层都是调的对象中的setXXX和getXXX方法
   populate(Object bean,Map properties)





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2