如何获得js获取实体类的属性值里属性本身?

18:18 提问
通过类反射获取实体类对象
private String[] colName = // 属性名数组数组
private String[] colType = // 存放实体类的数据类型 如java.lang.Long
private String[] colValue = // 要存进去的值
请问一下我有一个实体类
要把colValue里的数据以colType类型存到TbUser实体类的属性里
并且返回这个实体类
请大神给个思路 。。。 多谢
按赞数排序
如果colType仅仅是简单类型,那么最简单的是直接switch类型然后用 xxx.parseXXX() 解析字符串就可以了
package com.
import java.beans.BeanI
import java.beans.IntrospectionE
import java.beans.I
import java.beans.PropertyD
import java.lang.reflect.InvocationTargetE
public class ReflectSetObject {
static class TbUser {
private int userId;
private String userN
private String userP
public int getUserId() {
return userId;
public void setUserId(int userId) {
this.userId = userId;
public String getUserName() {
return userN
public void setUserName(String userName) {
this.userName = userN
public String getUserPassword() {
return userP
public void setUserPassword(String userPassword) {
this.userPassword = userP
public String toString() {
// TODO Auto-generated method stub
return "userId = " + userId + " ,userName = "+userName+ " ,userPassword = "+userP
* 未用colType,因Class c = Class.forName(colType[i]); c.cast(colValue[i])对int不行
* @param cls
* @param colName
* @param colType
* @param colValue
public &T& T setObject(Class&T& cls, String[] colName, String[] colType, String[] colValue){
t = cls.newInstance();
BeanInfo info = Introspector.getBeanInfo(cls);
PropertyDescriptor[] pros = info.getPropertyDescriptors();
for (PropertyDescriptor pro : pros) {
String pname = pro.getName();
for(int i=0; i&colName.i++){
if(pname.equals(colName[i])){
Class c = Class.forName(colType[i]);
c.cast(colValue[i]);
Class&?& c = pro.getPropertyType();
if(c == java.lang.Integer.class || c == int.class){
pro.getWriteMethod().invoke(t, java.lang.Integer.valueOf(colValue[i]));
}else if(c == java.lang.String.class){
pro.getWriteMethod().invoke(t, colValue[i]);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IntrospectionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IllegalAccessException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
public static void main(String[] args){
ReflectSetObject s = new ReflectSetObject();
TbUser u = s.setObject(TbUser.class, new String[]{"userId","userName","userPassword"},
null, new String[]{"123", "zhansan", "123"});
System.out.println(u);
用JavaBean自省,可以实现但不建议你这么操作。看你这个像是数据库操作。
其他相关推荐关于实体类的id属性。。。【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:665,657贴子:
关于实体类的id属性。。。收藏
为什么每个实体类都需要id这个属性呢?保存一个对象用不着吧?获取一个对象也用不着吧?更新通常也不会用到?删除?三大框架就hiberate感觉最难了。。有啥好书么?
51CTO学院11年行业品牌,1400万用户选择,中国专业IT技能学习平台,java.java资深名师授课,0基础从入门到精通,java报名与培训中心.
为啥你觉得不需要,我刚刚好觉得最简单……
那id是对应你数据库中的那个id。你觉得需要补。
登录百度帐号推荐应用java如何反射遍历实体类属性和类型并赋值和获取值
- 谷普下载 |
| 您所在的位置: >
> java如何反射遍历实体类属性和类型并赋值和获取值java如何反射遍历实体类属性和类型并赋值和获取值更新:&&&&编辑:电脑问题&&&&来源:谷普下载站&&&&人气:加载中...&&&&字号:|标签:&&   实例如下:  import java.lang.reflect.F  import java.lang.reflect.InvocationTargetE  import java.lang.reflect.M  import java.util.D  /**  * 获取实体类型的属性名和类型  * @param model 为实体类  * @author kou 为传入参数  */  public class GetModelNameAndType  {  public static void testReflect(Object model) throws SecurityException,  NoSuchMethodException, IllegalArgumentException,  IllegalAccessException, InvocationTargetException,
InstantiationException  {  // 获取实体类的所有属性,返回Field数组  Field[] field = model.getClass().getDeclaredFields();  // 获取属性的名字  String[] modelName = new String[field.length];  String[] modelType = new String[field.length];  for (int i = 0; i
field. i++)  {  // 获取属性的名字  String name = field[i].getName();  modelName[i] =  // 获取属性类型  String type = field[i].getGenericType().toString();  modelType[i] =  //关键。。。可拜访私有变量  field[i].setAccessible(true);  //给属性设置  field[i].set(model,
field[i].getType().getConstructor(field[i].getType()).newInstance(kou));  // 将属性的首字母大写  name = name.replaceFirst(name.substring(0, 1), name.substring(0, 1)  .toUpperCase());  if (type.equals(class java.lang.String))  {  // 如果type是类类型,则前面包括class ,后面跟类名  Method m = model.getClass().getMethod(get + name);  // 调用getter方式获取属性值  String value = (String) m.invoke(model);  if (value != null)  {  System.out.println(attribute value: + value);  }  }  if (type.equals(class java.lang.Integer))  {  Method m = model.getClass().getMethod(get + name);  Integer value = (Integer) m.invoke(model);  if (value != null)  {  System.out.println(attribute value: + value);  }  }  if (type.equals(class java.lang.Short))  {  Method m = model.getClass().getMethod(get + name);  Short value = (Short) m.invoke(model);  if (value != null)  {  System.out.println(attribute value: + value);  }  }  if (type.equals(class java.lang.Double))  {  Method m = model.getClass().getMethod(get + name);  Double value = (Double) m.invoke(model);  if (value != null)  {  System.out.println(attribute value: + value);  }  }  if (type.equals(class java.lang.Boolean))  {  Method m = model.getClass().getMethod(get + name);  Boolean value = (Boolean) m.invoke(model);  if (value != null)  {  System.out.println(attribute value: + value);  }  }  if (type.equals(class java.util.Date))  {  Method m = model.getClass().getMethod(get + name);  Date value = (Date) m.invoke(model);  if (value != null)  {  System.out.println(attribute value:  + value.toLocaleString());共2页:  
| 分类选择您可能在找这些安全检查中...
请打开浏览器的javascript,然后刷新浏览器
< 浏览器安全检查中...
还剩 5 秒&

我要回帖

更多关于 实体类属性起别名 的文章

 

随机推荐