A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-5-12 15:02  /  13990 人查看  /  97 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

张述明

反射:就是可以使用任意的成员变量,构造方法,成员方法,使用暴力可以避免后台的检查,从而获取私有的变量和方法
以下为重点内容
通过反射获取成员变量
1        Field[] getFields()  获取公共的成员变量
2         Field getField(String name)  返回指定名称字段

3        Field[] getDeclaredFields()   获取所有的成员变量
4        Field getDeclaredField(String name)  获取所有的成员变量(指定字段)

使用步骤
1. 通过反射获取该类的字节码对象
Class clazz = Class.forName("");
2. 创建该类对象
Object p = clazz.newInstance();
3. 获取该类中需要操作的字段(成员变量)
getField(String name)  方法传入字段的名称.
Field f = clazz.getField("如name");
4. 通过字段对象中的方法修改属性值
void set(Object obj, Object value)  --> 参数1): 要修改那个对象中的字段, 参数2):
f.set(p,要修改的值 );
通过反射操作私有成员变量
使用步骤
1.        获取类字节码对象
2. 获取lei对象
3. 通过getDeclaredField方法获取私有字段
4. 通过setAccessible让jvm不检查权限
5. 通过set方法设置对象为具体的值
通过反射获取成员方法并使用
反射获取普通成员方法
反射public方法执行流程
1.        获取学生类字节码对象
2. 反射手段创建学生对象
3. 调用getMethod方法获取Method对象, 方法形参接受方法的名字
4. 调用Method方法中的invoke()将方法运行

Javabean
1.        用于封装数据
2.        Public修饰类
3.        私有成员变量
4.        提供get/Set方法
5.        提供公共无参构造
6.        实现序列号接口

BeanUtils的使用
作用:简化javabean封装数据的操作.
public static void setProperty(Object bean,String name,Object value)
// 设置任意对象的, 任意属性, 为任意的值
public static String getProperty(Object bean,String name)
        // 获取任意对象的任意属性
        public static void populate(Object bean,Map map)
        // 修改任意对象中的属性, 为传入Map集合中的键和值


回复 使用道具 举报
陈世彪:
反射,java在运行中,我们可以通过反射获取它字节码文件里所有的东西,例如成员变量,成员方法,构造方法,包括私有的
Object obj = c.newInstance("lisi",30); 创建对象,并往里面赋值
Field[] getDeclaredFields() //获取所有的成员变量 包含私有
再加上setAccessible(true);//设置反射时取消Java的访问检查,暴力访问
操作成员方法
Public static void method(){}
1无参无返回值
Public static int method(){}
2 无参有返回值
Public static void method(参数){}
3 有参无返回值
BeanUtils工具类常用的三种方法
1 setProperty  用来给对象中的属性赋值
2 getProperty 用来获取对象中的属性
3 Populate 用来给对象中的属性赋值
独立编写MyBeanUitls工具类
记得要捕获异常,避免出没有的参数
catch (NoSuchFieldException e)
回复 使用道具 举报
李思贤
反射,通过class(3种)可以在编译时期就能获取该类所有的构造方法,成员变量,
成员方法.
Constructors(遍历得到构造方法后不能构造对象,因为JDK不知道他是空参还是有参)!!
想要构造对象要用Constructor.之后用newInstance就能构造对象.
下面是成员,getFileld和getMethod用法差不多,非私有的要注意用中间带Declared这个的,
还要注意让JDK留个小门setAccessible.
最后面是BeanUtils,会个populate就行了.(以上方法详情见学习笔记或者视频).

评分

参与人数 1黑马币 +5 收起 理由
5119 + 5 很给力!

查看全部评分

回复 使用道具 举报 1 0
5119 中级黑马 2018-5-12 21:46:18
24#
游荣辉
今天学会了反射,反射就是我们再编译时期可以获得的所有成员
反射获取字节码对象的三种方式,虽然以前有说过可是记不太清,可是今天记住了Class.forName(全类名),对象名.getclass,类名.class


还学会了反射操作构造方法先拿到他的字节码对象,用字节码对象调用getConstructor方法,得到他的空参构造,如果有参数那么根据参数获得有参构造.
运用反射操作成员变量操作成员方法
成员变量
(获取public的成员变量)
使用字节码对象调用Field getField(String name) 获得所有的public修饰的成员变量,可用set方法来更改变量的值.get来获取变量的值


(获取所有成员对象)
使用字节码对象调用Field getDeclaredField(String name)获得所有的成员变量包括私有的.可是想要获得它私有的成员必须先把setAccessible(true)开了,这样就可以获取或者更改变量了.

成员方法
                                获取成员方法的方式跟获取成员变量的方式差不多,用字节码调用getDeclaredMethod(所有的成员方法)获取getMethod(public修饰的成员方法),使用invoke来获取方法,当然私有的也要setAccessible(true).


还学了JavaBean他是用来封装用的,
BeanUtils 是用来为了能更简单的操作JavaBean的,它的最底层是由反射构成的,使用有好多异常;学了它的三个方法,有两个老师说        setProperty           getProperty(是有返回值的)    populate这个第一个参数是一个对象,第二个参数是一个Map集合,Map集合的第一个参数是记录成员变量的,第二个是记录值的
回复 使用道具 举报
吴利君
      今天学习反思,首先学习的是获取字节码的获取方式,总共3种,对象名.class,类名.class和class.forname(地址)。然后是构造方法的获得,获得共有的方法为class对象.getconstructor()方法,获取所有的构造后面加个s。可以使用newInstance方法对Constructor获取的构造方法进行赋值!
然后是变量的获取,首先获取字节码,然后创建Object对象,使用字节码.newInstance方法获得,然后获取变量,这了分我公有和私有,公有为getField和getFields这两个方法,私有的为暴力获得,方法为getDeclaredField和getDeclaredFields
注意的是获取私有的需要去权限,f.setAccessible(true),然后就可以直接set赋值,然后使用f.get更新获得新的对象,然后打印输出。
然后是方法的获得,首先也是获取字节码,创建Object对象使用使用字节码.newInstance方法获得,接下来获得方法需要分为三种,首先是无参有返回值的,使用clazz.getMethod("方法名");获得Method对象,然后使用invoke方法来接收返回的值并且赋值给Object对象。其次是无参无返回值的,这个直接使用clazz.getMethod("方法名")获得Method对象,然后Method对象.invoke(对象)直接输出,最后是有参无返回值的,这个在clazz.getMethod("方法名",字节码对象参数...)这里要注意传入的参数要使用字节码,并且个数统一。
当然,对于私有的还是使用带Declared的getDeclaredMethod()方法获得,但是还是得注意要去权限setAccessible(true),然后使用invoke更新。
最后是BeanUtils的使用,导包beanutils包和logging包,主要学习的是setProperty ,getProperty ,Populate 三个方法,setProperty 用来设置,getProperty 用来获得,最后的Populate 是使用Map集合Key和反射的原理,对对象的多个值赋值,这个很好用!
回复 使用道具 举报
Ldddd 初级黑马 2018-5-12 21:46:30
26#
赖镇东   (每日总结)
反射
今天学习到了反射,我对反射的理解就是可以直接获得任意类的任意成员和成员方法。
1,        复习了获取字节码的三总方法
(1)        根据对象
(2)        根据类名
(3)        根据Class
2,        学习了反射机制,利用字节码对象
(1)        获取构造方法
(2)        获取成员变量的对象,并用set,get赋值取值(公有可以用getFiled,其他的要用getDeclaredField,并提前解开访问,setAccessible打开权限)
(3)        获取成员方法(同成员变量一样,私有方法要注意使用的方法,也需要提前打开权限)
3,        BeanUtils
(1)        学会三个常用方法
(2)        自己创键一个BeanUtils
回复 使用道具 举报
林恒山
反射:在运行程序过程中,获取类的所有成员

字节码对象获取方式:1对象.getClass() 2类名.class 3Class.forName(“全类名”)

反射操作构造方法/成员变量/成员方法:
构造方法:  Constructor<?>[] getConstructors()   获取所有public的构造方法对象的集合
Constructor<T> getConstructor(Class<?>... parameterTypes)  根据指定的参数获取对应的构造方法对象

成员方法: Method[] getMethods() 获取所有的public的方法对象的集合
Method getMethod(String name, Class<?>... parameterTypes) 根据给定的参数获取对应public方法对象
Method getDeclaredMethod(String name, Class<?>... parameterTypes)  根据给定的参数获取对应方法对象(包括私有的) 成员方法调用void setAccessible(boolean flag) 实现取消java的权限检查

成员属性:Field[] getdFields()  获取所有的public 的成员属性对象的集合
Field getField(String name) 根据参数获得指定的public成员属性对象
Field getDeclaredField(String name) 根据参数获得指定的成员属性对象(包括私有的)  成员属性调用void setAccessible(boolean flag) 实现取消java的权限检查

BeanUtils的常用方法 populate
回复 使用道具 举报
常小天
反射:通过字节码对象获取并调用任意类的任意成员,包括私有的。
字节码文件:由程序员编写的程序转换而成的能然机器读懂的文件。
反射的使用:
1、获取字节码对象
2、通过字节码对象调用newInstance方法创建类的无参构造对象,或者通过字节码对象调用getConstructor方法获取构造方法对象,再通过构造方法对象调用newInstance(实际参数列表)方法创建类的对象。
3、通过字节码对象调用getDeclaredFields()方法获取成员变量对象,再通过获取的成员变量对象调用setAccessible方法取消变量权限检测,最后通过成员变量对象调用get(Object obj)方法和set(Object obj)方法对成员变量进行操作。
4、通过字节码对象调用get DeclaredMethod(String name,参数类型.Class…)方法获取成员方法对象,通过成员方法对象调用setAccessible方法取消变量权限检测,最后通过调用invoke(Object obj,实际参数列表)方法执行自身所指代的方法。
JavaBean:标准类
BeanUtils的作用:简化了JavaBean的封装数据的操作
BeanUtils重点方法:
static  void        populate(Object bean, Map properties)   通过map键值对给指定对象的成员变量进行赋值
自定义BeanUtils工具类:核心为通过反射获取字节码对象,通过字节码对象获取成员的对象,通过成员对象调用方法获取和设置变量值,可使用暴力反射
回复 使用道具 举报
5119 中级黑马 2018-5-12 21:47:29
29#
游荣辉
今天学会了反射,反射就是我们再编译时期可以获得的所有成员
反射获取字节码对象的三种方式,虽然以前有说过可是记不太清,可是今天记住了Class.forName(全类名),对象名.getclass,类名.class


还学会了反射操作构造方法先拿到他的字节码对象,用字节码对象调用getConstructor方法,得到他的空参构造,如果有参数那么根据参数获得有参构造.
运用反射操作成员变量操作成员方法
成员变量
(获取public的成员变量)
使用字节码对象调用Field getField(String name) 获得所有的public修饰的成员变量,可用set方法来更改变量的值.get来获取变量的值


(获取所有成员对象)
使用字节码对象调用Field getDeclaredField(String name)获得所有的成员变量包括私有的.可是想要获得它私有的成员必须先把setAccessible(true)开了,这样就可以获取或者更改变量了.

成员方法
                                获取成员方法的方式跟获取成员变量的方式差不多,用字节码调用getDeclaredMethod(所有的成员方法)获取getMethod(public修饰的成员方法),使用invoke来获取方法,当然私有的也要setAccessible(true).


还学了JavaBean他是用来封装用的,
BeanUtils 是用来为了能更简单的操作JavaBean的,它的最底层是由反射构成的,使用有好多异常;学了它的三个方法,有两个老师说        setProperty           getProperty(是有返回值的)    populate这个第一个参数是一个对象,第二个参数是一个Map集合,Map集合的第一个参数是记录成员变量的,第二个是记录值的
回复 使用道具 举报
本帖最后由 一梦 于 2018-5-13 00:15 编辑

陈世彪:
反射,java在运行中,我们可以通过反射获取它字节码文件里所有的东西,例如成员变量,成员方法,构造方法,包括私有的


通过获取的构造创建对象


步骤:


1.获得Class对象


2获得构造


3.通过构造对象获得实例化对象


操作成员方法


Public static void method(){}


1无参无返回值


Public static int method(){}


2 无参有返回值


Public static void method(参数){}


3 有参无返回值

Object obj =c.newInstance("lisi",30); 创建对象

FieldgetDeclaredField(String name) //获取指定的成员变量 包含私有

setAccessible(true);//设置反射时取消Java的访问检查,暴力访问

1setProperty  用来给对象中的属性赋值


2getProperty 用来获取对象中的属性


3Populate 用来给对象中的属性赋值



catch(NoSuchFieldException e) {}

自定义工具类时捕获异常并抛出


回复 使用道具 举报
吴利君
       今天学习反思,首先学习的是获取字节码的获取方式,总共3种,对象名.class,类名.class和class.forname(地址)。然后是构造方法的获得,获得共有的方法为class对象.getconstructor()方法,获取所有的构造后面加个s。可以使用newInstance方法对Constructor获取的构造方法进行赋值!
然后是变量的获取,首先获取字节码,然后创建Object对象,使用字节码.newInstance方法获得,然后获取变量,这了分我公有和私有,公有为getField和getFields这两个方法,私有的为暴力获得,方法为getDeclaredField和getDeclaredFields
注意的是获取私有的需要去权限,f.setAccessible(true),然后就可以直接set赋值,然后使用f.get更新获得新的对象,然后打印输出。
然后是方法的获得,首先也是获取字节码,创建Object对象使用使用字节码.newInstance方法获得,接下来获得方法需要分为三种,首先是无参有返回值的,使用clazz.getMethod("方法名");获得Method对象,然后使用invoke方法来接收返回的值并且赋值给Object对象。其次是无参无返回值的,这个直接使用clazz.getMethod("方法名")获得Method对象,然后Method对象.invoke(对象)直接输出,最后是有参无返回值的,这个在clazz.getMethod("方法名",字节码对象参数...)这里要注意传入的参数要使用字节码,并且个数统一。
当然,对于私有的还是使用带Declared的getDeclaredMethod()方法获得,但是还是得注意要去权限setAccessible(true),然后使用invoke更新。
最后是BeanUtils的使用,导包beanutils包和logging包,主要学习的是setProperty ,getProperty ,Populate 三个方法,setProperty 用来设置,getProperty 用来获得,最后的Populate 是使用Map集合Key和反射的原理,对对象的多个值赋值,这个很好用!
回复 使用道具 举报
5119 中级黑马 2018-5-12 21:48:40
32#
游荣辉
今天学会了反射,反射就是我们再编译时期可以获得的所有成员
反射获取字节码对象的三种方式,虽然以前有说过可是记不太清,可是今天记住了Class.forName(全类名),对象名.getclass,类名.class


还学会了反射操作构造方法先拿到他的字节码对象,用字节码对象调用getConstructor方法,得到他的空参构造,如果有参数那么根据参数获得有参构造.
运用反射操作成员变量操作成员方法
成员变量
(获取public的成员变量)
使用字节码对象调用Field getField(String name) 获得所有的public修饰的成员变量,可用set方法来更改变量的值.get来获取变量的值


(获取所有成员对象)
使用字节码对象调用Field getDeclaredField(String name)获得所有的成员变量包括私有的.可是想要获得它私有的成员必须先把setAccessible(true)开了,这样就可以获取或者更改变量了.

成员方法
                                获取成员方法的方式跟获取成员变量的方式差不多,用字节码调用getDeclaredMethod(所有的成员方法)获取getMethod(public修饰的成员方法),使用invoke来获取方法,当然私有的也要setAccessible(true).


还学了JavaBean他是用来封装用的,
BeanUtils 是用来为了能更简单的操作JavaBean的,它的最底层是由反射构成的,使用有好多异常;学了它的三个方法,有两个老师说        setProperty           getProperty(是有返回值的)    populate这个第一个参数是一个对象,第二个参数是一个Map集合,Map集合的第一个参数是记录成员变量的,第二个是记录值的
回复 使用道具 举报
渣.. 中级黑马 2018-5-12 21:49:00
33#
柯威龙
反射是java虚拟机在运行的时候,对于任何一个类都能够调用他的任意一个方法.
反射主要的是有一个暴力反射 setAccessible(true)
字节码我也不知道没搞懂是什么 只知道有三种获取方式
1:对象名.getClass获取
2.类名.class
3.class.forName(包名.类名)
构造方法
Constructor<?>[] getConstructors():这个构造方法是获取类中的构造方法然后返回一个数组
Constructor<T> getConstructor(Class<?>... parameterTypes) :接受一个可变的参数,然后可以根据串进去的类型来判断使用的构造方法
成员方法,与成员变量应该就是获取成员方法的对象和值.
成员方法有根据方法名返回Method对象:Method getMethod(String name,class<>...parameterTypes)
根据指定的参数和方法名返回Method对象:Field getDeclaredField(String name)
获取所有的成员变量包含私有的:Field[] getDeclaredFields()
根据指定的参数,获取public修饰的字段:Field getField(String name)

javaBean就是用来封装数据的,让反射更简便
BeanUtils最常用的有三个方法,三个方法都是用static静态来修饰的:
static void  setProperth(Object bean, String name, Object value)
Object bean:需要设置属性的对象
String name 需要修改的属性名称
Object value 需要修改的具体元素
static String getProperty(Object bean, String name)
Object bean 要获取的javaBean对象
String name 对象中的某个属性
static void populate(Object bean, Map properties)
Object bean 设置属性的对象
Map properties 将属性以Map集合的的形式传入
回复 使用道具 举报
陈叶隆
我今天学到了字节码对象的使用.之前学过这三种获取字节码对象的方法,可是没有教过具体用来干嘛的,今天知道了,其实跟File file有点类似的功能,先创建这个对象,然后可以对这个对象进行一些具体的操作,对对象的理解更略懂了一点.而且方法也是get/set,跟之前学的一些类比如ArrayList,Date的成员方法也有点相似,我本人比较容易忽略的一点就是对非公有字段操作的时候老是忘调用setAccessible;我觉得以防万一,好的办法就是把每次获取都用 getDeclaredField,然后field.setAccessible记成一种格式,因为即使公有的用getDeclaredField也没关系.
回复 使用道具 举报
汪志阳的反射总结:
      学习反射可以通过Class类的方法直接获取字节码对象,然后创建(Student)这种类对象,调用构造方法,成员方法,成员变量,无论他们的修饰符是什么,顽固的采用暴力反射,让系统跳过检查,进行获取,然后进行增删查减的操作
     javaBean就是我们之前创建的类,多了一步需要在类名点击"加锁",这样后续改变内容不影响程序运行,类似于类的地址值,字节码.
BeanUtil工具类,获取获取.populate的使用在于修改任意对象中的属性, 为传入Map集合中的键和值,自定义工具有点乱,在看着注释步骤能写出,独立写思路不够清晰,想到什么写什么,还需要慢慢思索,多敲几遍.
回复 使用道具 举报
郭明杰:反射:
通过反射,可以实现对一个类私有方法,变量的操作
有三种方式可以获取类的字节码对象,
1:通过对象名.getClass()获取
2:通过类名.class 直接获取
3:通过全类名获取,比较常用  Class.forName(“包名+类名”)

Class中获取有参构造的方法是getConstructor,获取无参构造用newInstance()方法快速创建
对类中私有的属性进行操作时,必须要关闭java的访问(setAccessible(true))

BeanUtils工具类  底层采用反射,需要掌握的方法:
populate(Object bean,Map map)
需要捕获异常

回复 使用道具 举报
江某人(总结)

阐述什么事反射机制:
反射机制是一门很强大的功能 可以获取private修饰了的方法和属性

阐述什么是字节码对象、以及获取的三种方式:
字节码对象是唯一的,获取方式有
1.对象名.getCalss();
2. 类名.class
3. Class.forName(放一个类的包名和类名);

阐述JavaBean的作用:
是一门很强大的工具类 创建对象就可以各种赋值 吊的不行  setProperty 可以赋值  getProperty可以读取  Populate这个是最强的

独立使用BeanUtils工具类:
学会使用BeanUtils中的三个方法

回复 使用道具 举报
本帖最后由 磬辰 于 2018-5-12 22:03 编辑

   林文辉 反射总结       反射的特性比较高级,只要获取到类名,就可以获取到类的内部的所有成员和所有方法.就单纯对程序来说确实是提高了程序的灵活性.但是同时可能带来意料之外的问题.并且反射代码通常比我们正常写的代码要麻烦,相当于拐了个弯.而且反射是通过类名对类的类部进行一系列的操作,这样可能会导致后期维护的难度增加.
       字节码对象说白了就是.java文件经过编译后变成了.class,然后再加载这个类.通常的获取方式有 类的对象.getClass(),类名.class 或者Class.forName("全类名").
       通过Class的静态方法getConstructor()可以获取类的public修饰的构造方法 ,getDeclaredConstructor()则比较不讲道理,不管你是不是用pulibc修饰的,我一样能把你获取. getConstructors()和getDeclaredConstructors() 分别是返回所有的public构造方法和返回所有的构造方法,返回类型都是数组.
        getField()和getDeclaredField()和构造方法类似,没加Declared的都是只能获取public修饰的方法或者变量,后者则可以全部获取,只不过必须在没有安全限制的环境中(setAccessible(true))运行,,这也是反射的一个问题所在.
        javaBean个人认为就是类的规范,按规矩来写类.不然总有个别喜欢搞特例的,就是不爱用private 就是喜欢protected 就是喜欢public修饰成员变量.
基本就是遵循这个几个规范
1、所有属性为private
2、提供默认构造方法
3、提供getter和setter
4、实现serializable接口
      BUtils是阿帕奇组织众多的一个工具类之一,populate相对来说用处稍广(毕竟是应用不是理解),并且也用到了双列结合,
由此可见双列集合在往后的开发项目是很广的,比如网站一些的分类啊,父分类子分类这种,Map相对来说用途还是很广的.
set get populate这几个底层都是通过反射来实现的.编写这几个方法主要还是熟悉一下人家的源码.正常来说只要知道怎么用就行了,不用管那么多,我们在编码时,并不需要知道我们处理的JavaBeans具体是什么类型,有哪些属性,这些信息是可以动态获取的,甚至我们都可以不必去关心事实上是否存在这样一个具体的JavaBean类。我们只需要知道有一个JavaBean的实例,我们需要从中取得某个属性,设定某个属性的值.当然有兴趣就可以去研究.
回复 使用道具 举报 1 0
颜琳琳

一.反射:获取类对象(Class对象).
作用:运行时,获取类对象成员,调用成员.
二.  主要是通过创建该类的字节码对象再来创建该类的对象
Class.forname(全类名)方法创建字节码对象,
另外还有: 类名.class 对象名.getclass
newInstance方法来创建该类的对象(通过空参),主要的方法
主要方法有:
getConstructors()可以查看所有的构造方法
getConstructor()括号带参数时,使用数据类型.class
通过 带有Declared的方法都是可以访问被私有修饰的方法
Field 是获取成员变量时返回的值,  有get和set方法
Invoke( 方法名,参数 )调用成员方法的方法 参数根据方法来定
注意:
通过反射获取的私有变量或者私有方法,都要用setAccessible()方法让JVM不检查.
三.JavaBean:
作用:用来封装数据,和普通的类多了生成一个序列号.
BeanUitls重要的方法:
Static void Populate(Object bean,Map map) 给对象查看和修改对象中的属性
注意:
在测试类中用Map集合添加的元素在对应的类中找不到相同的元素,所有需要捕获异常.
回复 使用道具 举报
吴俊斌
1,什么是反射?反射就是在运行时,可以获取或改变成员和属性的机制

2,字节码的三种获取方式:
       类名. class   对象名.getClass     Class.forName(包名加类名)
通过获取的构造创建对
       先获取字节码对象,调用getConstructor()方法,如果创建有参的的
构造,参数是类型的字节码对象.
   快捷生成的构造方法创建对象的方法是 字节码对象调用newInstance()方法,
这方法只能创建空参的

3,获取成员变量(字段)
      字节码对象调用getField()方法,这个只能获取public修饰的成员变量,使用有参
的传递的是字符串.返回的是一个FIled对象,可以用调用get 和set获取和设置变量
      字节码对象调用 getDeclaredFields()方法,可以获取所有成员变量,使用有参传递
的是字节码对象,返回的也是一个Filed对象,在使用前面要调用setAccessible(true)让jvm不检查,然后再调用setPropert和getPropert获取和设置

4获取成员变量
       字节码对象调用getMethod方法获取public修饰的Method对象,使用有参构造传递的是参数的字节码对象,可以调用invoke()将方法运行
       字节码对象调用getDeclaredMethod方法获取所有的method对象,使用方式一样

5,JavaBean格式:
        类使用公共进行修饰
        供私有修饰的成员变量
为成员变量提供公共getter和setter方法
提供公共无参的构造
添加实现序列号接口(就是实现Serializable,再加一个序列号)

6,BeanUtils就是一个工具类,用类名调用setProperty对象中public修饰的属性赋值.调用getProperty可以获取对象中public修饰的属性,调用populate可以获取对象中所有的属性赋值  
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马