1.创建user.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
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反射的两种使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:https://www.cnblogs.com/i-tao/archive/2018/05/29/9103589.html