Java反射的两种使用方法(推荐)
程序员文章站
2023-12-19 14:56:28
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反射的两种使用方法,希望对大家有所帮助