java如何用反射给对象赋值
publicUsergetObject(BasePOJObase){}如上,我的BasePOJO是一个什么都没有的类,没有任何属性的空类我的User继承它,但是我怎么利用...
public User getObject(BasePOJO base){
}
如上,我的BasePOJO是一个什么都没有的类,没有任何属性的空类
我的User继承它,
但是我怎么利用反射得到User的实例对象
Object o = base.getClass.new什么的方法,可以得到相关子类
但是这个o点不出来子类的相关属性,
哪我要怎么才能给这个o(实际是User对象)赋值? 展开
}
如上,我的BasePOJO是一个什么都没有的类,没有任何属性的空类
我的User继承它,
但是我怎么利用反射得到User的实例对象
Object o = base.getClass.new什么的方法,可以得到相关子类
但是这个o点不出来子类的相关属性,
哪我要怎么才能给这个o(实际是User对象)赋值? 展开
4个回答
展开全部
Class clazz = Class.forName("com.fanshe.Person");
//当然如果你需要将全部的字段都访问的话,那么就需要getdecaredFields()方法
Field field = clazz.getDeclaredField("age");//该方法会调用该类中所有的字段
field.setAccessible(true);//暴力访问,取消age的私有权限。让对象可以访问
Object obj = clazz.newInstance();
field.set(obj, 32);//设置对象中,私有变量的值
int age = field.getInt(obj);//获取该字段的值,必须与对象结合起来,不然的话,会出现错误
//当然如果你需要将全部的字段都访问的话,那么就需要getdecaredFields()方法
Field field = clazz.getDeclaredField("age");//该方法会调用该类中所有的字段
field.setAccessible(true);//暴力访问,取消age的私有权限。让对象可以访问
Object obj = clazz.newInstance();
field.set(obj, 32);//设置对象中,私有变量的值
int age = field.getInt(obj);//获取该字段的值,必须与对象结合起来,不然的话,会出现错误
推荐于2017-11-25
展开全部
在开发Web应用程序时,经常需要将Post的表单的内容传递给JavaBean。虽然一些框架可以自动完成这一动能,但是如果需要一些额外的灵活性,我们还是考虑自己来实现这一过程。我们可以利用反射实现表单的字段自动赋给JavaBean的相应setXxx方法。为此,我们设计了一个ParameterUtil类,实现一个setFormBean()的静态方法:package com.crackj2ee.web.util;import java.lang.reflect.Method;import java.util.*;import javax.servlet.http.HttpServletRequest; ...
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果参数base只是BasePOJO的实例,和User无关的话,那通过base就不可能得到User类的实例,如果base是User类的实例,那可以通过强制转换User user = (User)base;得到User类的实例或者通过反射User user = ((User)base).getClass.newInstance();像Object o这样的,如果o是User对象,可以这样User user = (User)o;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-22
展开全部
如上,我的BasePOJO是一个什么都没有的类,没有任何属性的空类
我的User继承它,
但是我怎么利用反射得到User的实例对象
Object o = base.getClass.new什么的方法,可以得到相关子类
但是这个o点不出来子类的相关属性,
哪我要怎么才能给这个o(实际是User对象)赋值?
我的User继承它,
但是我怎么利用反射得到User的实例对象
Object o = base.getClass.new什么的方法,可以得到相关子类
但是这个o点不出来子类的相关属性,
哪我要怎么才能给这个o(实际是User对象)赋值?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询