java 反射

利用反射可以处理的事情,可以改变对象里的值.

比如我们的项目,有spring注入不成功,利用反射做spring没做到位的事情.(好像只有private的对象才行哦)

eg:

public class Test{

  private String a;

  public static void main(String[] args ){

    //现在a为空

    Test t = new Test();

    insertA();

    System.out.println(t.a)

  }

  public static void insertA(Object o){

    //通过反射搞

    Class cla = o.getClass();

    Field[] fs = cla.getDeclaredFields();//类中获取什么的字段

    if(null!=fs){

      for(Field f:fs){

        try{

          Object theObj = f.get(cla);//获取真实对象

          if(null==theObj){

            //设置对象中的值

            f.set(o,"123");

            //至此,对象t中a的值已经为123;

          }

        }catch(Exception e){

          e.printStackTrace();

        }

      }

    }  

  }

}

原文地址:https://www.cnblogs.com/yanjunwu/p/3824962.html