Java反射的两种使用方法(推荐)
1.创建User.java
packagecom.tao.test;
publicclassUser{
privateStringname;
privateintid;
publicUser(){
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
}
2.main方法
packagecom.tao.test;
importjava.lang.reflect.Constructor;
importjava.lang.reflect.Field;
publicclasstest{
publicstaticvoidmain(String[]args)throwsException,SecurityException{
//第一种Constructor>方法
Constructor>a=User.class.getDeclaredConstructor();
a.setAccessible(true);
Userb=(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");
FieldidF=c.getDeclaredField("id");//id字段
idF.setAccessible(true);
Objecto=c.newInstance();
idF.set(o,2);
FieldnameF=c.getDeclaredField("name");//name字段
nameF.setAccessible(true);
Objectname=c.newInstance();
nameF.set(name,"jack");
System.out.println(idF.get(o)+""+nameF.get(name));
//普通new
Useruser=newUser();
user.setId(3);
user.setName("tery");
System.out.println(user.getId()+""+user.getName()+""+user.getClass());
}
}
3.控制台输出:
test
jack
teryclasscom.tao.test.User
总结
以上所述是小编给大家介绍的Java反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!