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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
package cn.lhl.Test; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import cn.lhl.Test.bean.User; /** *通过反射API动态操作:构造器、方法、属性 * @author Administrator * */ public class Demo03 { public static void main(String[] args) { String path = "cn.lhl.Test.bean.User" ; try { Class<User> clazz = (Class<User>) Class.forName(path); //通过反射API调用构造方法,构造对象 User u = clazz.newInstance(); //调用了User无参构造方法 System.out.println(u); Constructor<User> c = clazz.getDeclaredConstructor( int . class , int . class ,String. class ); User u1 = c.newInstance( 100 , 18 , "华哥" ); System.out.println(u1.getUname()); //通过反射API调用普通方法 User u2 = clazz.newInstance(); Method method = clazz.getDeclaredMethod( "setUname" ,String. class ); method.invoke(u2, "华哥二" ); System.out.println(u2.getUname()); //通过反射API操作属性 User u3 = clazz.newInstance(); Field f = clazz.getDeclaredField( "uname" ); f.setAccessible( true ); //这个属性不需要安全检查,可以直接访问,可以提高效率(大概为4倍) f.set(u3, "华哥三" ); //通过反射直接写属性 System.out.println(u3.getUname()); //通过反射直接读取属性的值 System.out.println(f.get(u3)); } catch (Exception e) { e.printStackTrace(); } } } |
栏目列表
最新更新
Java 内存模型
反射机制(reflection)
Java基础之五、Java编程思想(1-7)
java的基本数据类型
java.math包下计算浮点数和整数的类
SpringCloud之eureka注册中心入门
Java连载88-HashSet集合与hashCode方法重写
springboot快速创建项目框架
Linux下使用Tomcat
spring cloud微服务快速教程之(十一) Sl
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
Dubbo(五):深入理解Dubbo核心模型Invok
vfp教程之VFP与Excel交互编程
vfp教程之在VFP中实现跟变式组合框及椭圆
SQL SERVER查询数据库所有表的大小,按照记
使用 SQL 服务器时,"评估期已过期"错
sql server无法连接本地服务器
使用sql语句创建表
VB操作Access数据库小记 ————————
access数据库远程连接
java web操作Access数据库