java使用反射给对象属性赋值的两种方法
来源:互联网 发布:网盘源码系统 编辑:程序博客网 时间:2024/05/16 13:01
java反射无所不能,辣么,怎么通过反射设置一个属性的值呢?
主程序:
/** * @author tengqingya * @create 2017-03-05 15:54 */public class TestReflectSet { private String readOnly; public String getReadOnly() { return readOnly; } public void setReadOnly( String readOnly ) { System.out.println("set"); this.readOnly = readOnly; } }
方法1:
TestReflectSet t = new TestReflectSet(); Field f = t.getClass().getDeclaredField("readOnly"); f.setAccessible(true); f.set(t, "test"); System.out.println(t.getReadOnly());
以上方法得到一个类的Field 属性,然后设置可见性,然后设置了一个值,最后打印
方法2:
Method setReadOnly = t.getClass().getMethod("setReadOnly", String.class); String s ="test2"; setReadOnly.invoke(t,s); System.out.println(t.getReadOnly());
最后的打印结果:
调用方法一
test
调用方法二
set
test2
也就是说,第一种方法,没有调用属性的set方法就完成了赋值,但是第二种方法,是通过调用属性的set方法来完成赋值。
所以,如果想在程序中改变程序的属性的值的同时还想做一些额外的事情,可以将这些事情写到set方法中并使用第二种方法哦················
0 0
- java使用反射给对象属性赋值的两种方法
- java中关于给属性赋值的两种方法
- [java]反射机制给属性使用set方法构造对象
- 利用反射给对象的属性赋值的例子
- 反射给没有set方法的属性赋值
- struts中透过反射给领域对象赋值的方法
- JAVA反射——给属性赋值
- java反射机制动态给属性赋值
- java反射动态给对象属性赋值,并获取属性值
- 利用“反射”给类的属性赋值。
- 运行时如何给java对象动态的属性赋值
- C# 反射给对象属性赋值遇到的问题——类型转换
- 微信小程序两种为对象属性赋值的方式
- Java按照对象属性排序的两种方法
- 用反射将DataTable的一行DataRow构建为一个自定义类的对象 - 给对象的属性赋值
- 通过java反射机制来获取属性的类型,获取属性的值并给属性赋值
- JS给对象属性赋值
- 使用反射给vo赋值
- java web 常用框架
- 网络传输介质篇--大致了解常见的网络传输介质
- Java 字符串从后往前每隔三位添加逗号
- VTK的Reader与Writer
- PHP面向对象编程设计模式(二)单例模式
- java使用反射给对象属性赋值的两种方法
- HRBUST-1315 火影忍者之~大战之后
- 没打开coredump,调试core的方法
- 形式化说明技术
- MySQL 二进制日志格式
- 操作文件流的类,读写类StreamReader,StreamWriter和File类以及Directory类的操作
- 加壳原理与简单实现加壳(delphi源码)
- 方法和作用域中的内部类
- C# Redis之ServiceStack