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反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!