zoukankan      html  css  js  c++  java
  • 反射入门

    java里面反射是什么:反射就是把Java类中的各个部分,映射成一个个的Java对象,拿到这些对象后可以做一些事情。

    反射:通过字节码对象,来获取这个类文件里面的属性,方法,构造器,注解

    话不多说上代码:

     1 public static void main(String[] args) throws Exception {
     2 
     3         // 反射:通过字节码对象,来获取这个类文件里面的属性,方法,构造器,注解
     4         
     5         //如何获取字节码对象(3种)
     6         Class cls1=UserEntity.class;
     7         
     8         Class cls2=Class.forName("com.lv.entity.UserEntity");
     9         
    10         UserEntity u=new UserEntity();
    11         Class cls3=u.getClass();
    12         
    13         //通过字节码对象来获取它里面的属性
    14         Field[] fields=cls1.getDeclaredFields();//获取所有的属性对象
    15         
    16         //Field属性类  field属性对象
    17         Field field=cls1.getDeclaredField("bid");//根据属性的名称来获取一个属性对象
    18         
    19         //修改摸个对象的属性值
    20         Object obj=cls1.newInstance();
    21         UserEntity us=(UserEntity)obj;
    22         
    23         //私有属性一定要暴力破解他的私有属性访问的权限
    24         field.setAccessible(true);
    25         field.set(us, 555);//通过属性对象修改某个实体类对象里面改属性的值,但是如果属性是私有的要给他打开
    26         
    27         System.out.println(us.getBid());
    28         
    29     }

    当我们不加这一段代码:我们对象集合里面的bid是从0开始的,加上下面的代码就是从555开始的

    1  //私有属性一定要暴力破解他的私有属性访问的权限
    2 24         field.setAccessible(true);
    3 25         field.set(us, 555);//通过属性对象修改某个实体类对象里面改属性的值,但是如果属性是私有的要给他打开

  • 相关阅读:
    PAT 1097. Deduplication on a Linked List (链表)
    PAT 1096. Consecutive Factors
    PAT 1095. Cars on Campus
    PAT 1094. The Largest Generation (层级遍历)
    PAT 1093. Count PAT's
    PAT 1092. To Buy or Not to Buy
    PAT 1091. Acute Stroke (bfs)
    CSS:word-wrap/overflow/transition
    node-webkit中的requirejs报错问题:path must be a string error in Require.js
    script加载之defer和async
  • 原文地址:https://www.cnblogs.com/dabu/p/12975297.html
Copyright © 2011-2022 走看看