java bean怎么转化为map 不用第三方

java bean怎么转化为map 不用第三方,第1张

在做导入的时候,遇到了需要将map对象转化 成javabean的问题,也就是说,不清楚javabean的内部字段排列,只知道map的 key代表javabean的字段名,value代表值。

那现在就需要用转化工具了。是通用的哦!

首先来看 JavaBean 转化成Map的方法

[java] view plaincopy

[java]

/

将一个 JavaBean 对象转化为一个 Map

@param bean 要转化的JavaBean 对象

@return 转化出来的 Map 对象

@throws IntrospectionException 如果分析类属性失败

@throws IllegalAccessException 如果实例化 JavaBean 失败

@throws InvocationTargetException 如果调用属性的 setter 方法失败

/

@SuppressWarnings({ "rawtypes", "unchecked" })

public static Map convertBean(Object bean)

throws IntrospectionException, IllegalAccessException, InvocationTargetException {

Class type = beangetClass();

Map returnMap = new HashMap();

BeanInfo beanInfo = IntrospectorgetBeanInfo(type);

PropertyDescriptor[] propertyDescriptors = beanInfogetPropertyDescriptors();

for (int i = 0; i< propertyDescriptorslength; i++) {

PropertyDescriptor descriptor = propertyDescriptors[i];

String propertyName = descriptorgetName();

if (!propertyNameequals("class")) {

Method readMethod = descriptorgetReadMethod();

Object result = readMethodinvoke(bean, new Object[0]);

if (result != null) {

returnMapput(propertyName, result);

} else {

returnMapput(propertyName, "");

}

}

}

return returnMap;

}

下面是将Map转化成JavaBean对象的方法:

[java] view plaincopy

[java]

/

将一个 Map 对象转化为一个 JavaBean

@param type 要转化的类型

@param map 包含属性值的 map

@return 转化出来的 JavaBean 对象

@throws IntrospectionException 如果分析类属性失败

@throws IllegalAccessException 如果实例化 JavaBean 失败

@throws InstantiationException 如果实例化 JavaBean 失败

@throws InvocationTargetException 如果调用属性的 setter 方法失败

/

@SuppressWarnings("rawtypes")

public static Object convertMap(Class type, Map map)

throws IntrospectionException, IllegalAccessException,

InstantiationException, InvocationTargetException {

BeanInfo beanInfo = IntrospectorgetBeanInfo(type); // 获取类属性

Object obj = typenewInstance(); // 创建 JavaBean 对象

// 给 JavaBean 对象的属性赋值

PropertyDescriptor[] propertyDescriptors = beanInfogetPropertyDescriptors();

for (int i = 0; i< propertyDescriptorslength; i++) {

PropertyDescriptor descriptor = propertyDescriptors[i];

String propertyName = descriptorgetName();

if (mapcontainsKey(propertyName)) {

// 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。

Object value = mapget(propertyName);

Object[] args = new Object[1];

args[0] = value;

descriptorgetWriteMethod()invoke(obj, args);

}

}

return obj;

这里的bean不是java bean的概念中的bean在spring中,凡是需要在容器中进行管理的对象都在xml里定义为一个bean这是个xml的定义规则。

name当然就是定义一个名称啦。class用于定义对应这个名称的类的名字,property是对这个类中变量的赋值,name是这个变量名,ref是引用这个XML里定义的另外一个bean的名字

通过你的问题,你对你使用的整体框架缺乏了解,最好买一本这方面的书看一看,所有问题就都清楚了。这个问题属于基础性的,还有很多关联性的知识在这里无法详细介绍,所以可能你还不能够完全理解我回答的内容的真实用途。

package comjavabean;

public class AddNum(){

private double num1;

private double num2;

public void setNum1(double n1){

num1=n1;

}

public double getNum1(){

return num2;

}

public void setNum2(double n2){

num2=n2;

}

public double getNum2(){

return num2;

}

}

}

jsp的标签忘得差不多了,你自己借本书来看看吧。

javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法JavaBean是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java类可以通过自身机制发现和 *** 作这些JavaBean属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。JavaBean书写规范:(1)JavaBean类必须是一个公共类,并将其访问属性设置为public,如:publicclassuser{}(2)JavaBean类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,例如:publicUser(){}(3)一个javaBean类不应有公共实例变量,类变量都为private,如:privateintid;(4)javaBean属性是具有getter/setter方法的成员变量。也可以只提供getter方法,这样的属性叫只读属性;也可以只提供setter方法,这样的属性叫只写属性;如果属性类型为boolean类型,那么读方法的格式可以是get或is。例如名为abc的boolean类型的属性,它的读方法可以是getAbc(),也可以是isAbc();一般JavaBean属性以小写字母开头,驼峰命名格式,相应的getter/setter方法是get/set接上首字母大写的属性名。例如:属性名为userName,其对应的getter/setter方法是getUserName/setUserName。但是,还有一下几种特殊情况:1、如果属性名的第二个字母大写,那么该属性名直接用作getter/setter方法中get/set的后部分,就是说大小写不变。例如属性名为uName,方法是getuName/setuName。2、如果前两个字母是大写(一般的专有名词和缩略词都会大写),也是属性名直接用作getter/setter方法中get/set的后部分。例如属性名为URL,方法是getURL/setURL。3、如果首字母大写,也是属性名直接用作getter/setter方法中get/set的后部分。例如属性名为Name,方法是getName/setName,这种是最糟糕的情况,会找不到属性出错,因为默认的属性名是name。所以在JavaBean命名时应该注意符合以上命名规范。综上述文章,为大家讲解了Java中的bean用法的介绍,以及书写规范。

以上就是关于java bean怎么转化为map 不用第三方全部的内容,包括:java bean怎么转化为map 不用第三方、bean是用来做什么的它有什么作用、4。在此项目中建立一个放在某一个包中的JavaBean程序(包名和类名考生自己命名),该程序定义两个 private等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9564840.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存