导航:首页 > 编程语言 > java反射设置值

java反射设置值

发布时间:2023-03-28 10:36:00

Ⅰ 如何通过java的反射 修改对象的属性的值

Fieldfield=classType.getDeclaredField("username");
//设置压制访问类型检查,只有这样,才能获取和设置某个具体类的Field对应的值。
field.setAccessible(true);
System.out.println(field.get(privateField));
//设置私有域的值
field.set(privateField,"arthinking");
System.out.println(field.get(privateField));

Ⅱ Java通过反射可以设置私有变量的好处有哪

Java通过反射可以设置私有变量的好处有
public class PrivateTest { private String name = "hello"; public String getName() { return name; } } public class ReflectionTest { public static void main(String[] args) throws Exception { PrivateTest pt = new PrivateTest(); Class clazz = PrivateTest.class; Field field = clazz.getDeclaredField("name"); field.setAccessible(true); field.set(pt, "world"); field.setAccessible(false); System.out.println(pt.getName()); } } 这样通过反射可以设置私有变量,Java当时设计的时候是出于什么考虑的呢?
但是也有应用的场景,可以想到的是: hibernate中你定义实体类及相应的字段(和数据库表对应),你可以在映射文件中配置: 当你从数据库中获取到数据后,是调用类的setxxx()方法,还是直接给字段赋值,这里字段是可以设置成private的,用的就是反射。那java反射可以设置私有变量的值,是好处多还是坏处多呢? 问题补充:robertliudeqiang 写道提供了一种接口吧,一般情况下不会用的。
但是也有应用的场景,可以想到的是: hibernate中你定义实体类及相应的字段(和数据库表对应),你可以在映射文件中配置: 当你从数据库中获取到数据后,是调用类的setxxx()方法,还是直接给字段赋值,这里字段是可以设置成private的,用的就是反射。目前反射设置private变量的值,还未看出是有好处 的。
那应该是java的一个问题遗留,为了兼容没法解决的。

Ⅲ JAVA中反射是什么

JAVA中反射是动态获取信息以及动态调用对象方法的一种反射机制。

Java反射就是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。而这也是Java被视为动态语言的一个关键性质。

Java反射的功能是在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,在运行时判断任意一个类所具有的成员变量和方法,在运行时调用任意一个对象的方法,生成动态代理。

(3)java反射设置值扩展阅读:

JAVA中反射实例:

1、Class superClass=clazz.getSuperclass();//获取父类。

System.out.println("getSuperclass:"+superClass)。

2、Class[] interfaces=clazz.getInterfaces();//获取实现接口。

System.out.println("getInterfaces:"+interfaces.length)。

3、Constructor[] cons=clazz.getConstructors();//构造方法。

System.out.println("getConstructors:"+cons.length)。

参考资料来源:网络: JAVA反射机制

Ⅳ 关于java反射给属性进行赋值的问题!

Field[] fields = per1.getClass().getFields();
这句只能取到声明为public的属性,而你的name,age都是使用默认的private属性。
所以取出来的fields为空。
String newvalue = oldvalue.replaceAll("小红", "小白");
这句代码不知是不是你手误了,不存在小红,就不可能转变为小白。

阅读全文

与java反射设置值相关的资料

热点内容
python数组分片 浏览:251
linux图形化编程 浏览:175
阿里国际站app端怎么装修 浏览:528
微信小程序云开发简单搭建源码 浏览:851
以后缺程序员吗 浏览:293
jsp源码不能运行 浏览:363
淘客助手源码下载 浏览:733
如何使用app记账报税 浏览:562
python线程捕捉键盘 浏览:25
地推统计图app怎么做 浏览:162
android文件夹不能用了 浏览:857
加密软件的日志 浏览:892
肾病pdf 浏览:230
网站怎么用本地服务器 浏览:120
javadoc导入android 浏览:517
文件扫描成pdf 浏览:696
凉山火灾救援命令 浏览:54
压缩机三相检测 浏览:861
linux怎么安装光盘 浏览:799
宽带服务器无响应是为什么 浏览:226