当前位置: 移动技术网 > IT编程>开发语言>Java > Java反射的两种使用方法(推荐)

Java反射的两种使用方法(推荐)

2019年07月19日  | 移动技术网IT编程  | 我要评论

1.创建user.java

package com.tao.test;
public class user {
  private string name;
  private int id;
  public user() {
  }
  public string getname() {
    return name;
  }
  public void setname(string name) {
    this.name = name;
  }
  public int getid() {
    return id;
  }
  public void setid(int id) {
    this.id = id;
  }
}

2.main方法

package com.tao.test;
import java.lang.reflect.constructor;
import java.lang.reflect.field;
public class test {
  public static void main(string[] args) throws exception, securityexception {
    //第一种 constructor<?>方法
    constructor<?> a = user.class.getdeclaredconstructor();
    a.setaccessible(true);
    user b = (user)a.newinstance();
    b.setid(1);//id字段
    b.setname("test");//name字段
    system.out.println(b.getid()+" "+b.getname());
    //第二种 class<?>方法
    class<?> c = class.forname("com.tao.test.user");
    field idf = c.getdeclaredfield("id");//id字段
    idf.setaccessible(true);
    object o = c.newinstance();
    idf.set(o, 2);
    field namef = c.getdeclaredfield("name");//name字段
    namef.setaccessible(true);
    object name = c.newinstance();
    namef.set(name, "jack");
    system.out.println(idf.get(o)+" "+namef.get(name));
    //普通new
    user user = new user();
    user.setid(3);
    user.setname("tery");
    system.out.println(user.getid()+" "+user.getname()+" "+user.getclass());
  }
}

3.控制台输出:

 test
 jack
tery class com.tao.test.user

总结

以上所述是小编给大家介绍的java反射的两种使用方法,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网