欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-16 22:14:52
1.创建user.java package com.tao.test; public class user { private string name;...

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反射的两种使用方法,希望对大家有所帮助

上一篇:

下一篇: