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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2018-4-26 14:26 编辑

                                        Java基础班第13天课程

//一个表情代表一个知识点

1.        对象名.getCalss();                 // 次方法来自于Object  对象已经存在的情况下, 可以使用这种方式
2.        类名.class                        // 类名.class这是一个静态的属性, 只要知道类名, 就可以获取
3.        Class.forName(“com.itheima_01.Student”);                        // 通过Class类中的静态方法, 指定字符串, 该字符串是类的全类名(包名+类名)
// 此处将会抛出异常都系 ClassNotFoundException 防止传入错误的类名
代码演示:
public class ReflectDemo {
    public static void main(String[] args) throws ClassNotFoundException {
        // 通过ObjectgetClass()方法获取,必须要有对象
        Student s = new Student();
        Class clazz = s.getClass();
        // 通过类名获取字节码对象
        Class clazz2 = Student.class;
//推荐方法使用
        Class clazz3 = Class.forName("com.itheima_01.Student");
}
三种字节码获取的方式,推荐第三种方法使用;

Field[] getFields()              --> 返回该类所有(公共)的字段
Field getField(String name)      --> 返回指定名称字段
  
Field[] getDeclaredFields()      --> 暴力反射获取所有字段(包括私有)   Field getDeclaredField(String name) --> 暴力反射获取指定名称字段
       Field:
                      Object get(Object obj)          --> Field对象调用, 返回传入对象的具体字段
                      void set(Object obj, Object value) -->  Field对象调用
                                                        参数1: 要修改的对象
                                                        参数2: 将此对象的字段修改为什么值.

BeanUtils
static void    setProperty(Object bean, String name, Object value)
static String getProperty(Object bean, String name)
static void    populate(Object bean, Map properties)
setProperty  用来给对象中的属性赋值(了解)
              参数1: 需要设置属性的对象
              参数2: 需要修改的属性名称
              参数3: 需要修改的具体元素     
      
       getProperty 用来获取对象中的属性(了解)
              参数1: 要获取的javaBean对象
              参数2: 对象中的哪个属性

         Populate 用来给对象中的属性赋值(掌握)

              参数1: 要设置属性的对象
              参数2: 将属性以Map集合的形式传入
                                   Key : 属性的名称
                                   Value:  属性具体的值






0 个回复

您需要登录后才可以回帖 登录 | 加入黑马