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

java反射设置属性

发布时间:2024-03-02 04:05:19

A. java反射 在只知道类名的情况下,怎样给其中的私有属性赋值

利用反射能

//假设类名为A
//实例化类
Ap=newA();
//获取class
Classc=p.getClass();
//获取该类所有的字段
Field[]fields=c.getDeclaredFields();
//遍历赋值
for(inti=0;i<fields.length;i++){
StringfiledName=fields[i].getName();
//AccessibleTest类中的成员变量为private,故必须进行此操作
fields[i].setAccessible(true);
//判断类型
Class<?>type=fields[i].getType();
//获取字段类型
StringtypeName=type.getName();
System.out.println(type.getName());

//对字段进行赋值第一个参数为对象引用第二个参数为要附的值

//如果为字符串类型
if("java.lang.String".equals(typeName)){
fields[i].set(p,"1");
}
//如果为日期类型
elseif("java.util.Date".equals(typeName)){
fields[i].set(p,newDate());
}
else{
fields[i].set(p,1);
}

}

//楼主我只是简单的写了下。可能还需要判断字段名称以及其他类型什么的。



最后希望楼主多看看java 文档。

B. 如何通过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));

C. java 反射 能直接对私有属性赋值么不通过set方法

设置
A a = new A();
Field field = a.getClass().getDeclaredField("x");
field.setAccessible(true);
field.set(a, 1);
读取
Field f = a.getClass().getDeclaredField("x");
f.setAccessible(true);
System.out.println(f.get(a));

D. 如何利用java反射机制往.java文件中添加属性

class
c
=
class.forname("student");
//通过字符串装载类,
必须是绝对路径,
即包括包名
object
o
=
c.newinstance();
//获取装载类的实例,
如果找不到就会抛出异常
class[]
cs=
{sting.class,int.class};
//定义一个类的数组,
一般这种都是用在method的参数列表
//string.class说明传的是类型
method
m
=
c.getmethod("study",cs);
//获取装载类的实例的study方法,
注意后面的参数,
class[]
ca
=
{"tom",18}
//和上面有点不同,
这里传的是值
object
result
=
m.invoke(o,ca);
//执行method方法,并获取结果
反射一般都用在类名,字段,方法可以随便变化的时候,
还可以进行统一的处理,提高扩展性
比如说hibernate框架的实体类,
预先你不可能知道实体类会有什么字段,
包括字段的类型都是有可能随意变化的,
这时候要获取指定类的字段信息就必须得使用反射了.
还有struts的actionform等都一样
以上纯属个人意见,
学得不是很深,希望能给你带来帮助

阅读全文

与java反射设置属性相关的资料

热点内容
爱奇艺上海算法团队 浏览:138
程序员颜值高的人 浏览:362
西数硬件加密和闪迪软件加密 浏览:716
声控足球解压黏土教程 浏览:639
linux下的嵌入式开发 浏览:173
电脑3d加速命令 浏览:105
加密手机号码是怎么回事 浏览:921
女程序员真实图片 浏览:696
pic单片机烧写 浏览:814
linuxping结果 浏览:196
单片机采集负电压 浏览:407
服务器收件什么意思 浏览:893
单片机发数组 浏览:884
魔方虚拟主机销售系统源码 浏览:709
rsa验签php源码 浏览:514
github怎么直接打开源码 浏览:529
和家亲app怎么下载不了了 浏览:728
蓝屏程序员 浏览:78
androidinflatexml 浏览:489
魔兽争霸2下载好了怎么解压 浏览:920