把JavaBean的from的值自动set给to,省略了自己从from中get然后再set给to
public static Object convertBean2Bean(Object from, Object to) {
try {
BeanInfo beanInfo = Introspector.getBeanInfo(to.getClass());
PropertyDescriptor[] ps = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor p : ps) {
Method getMethod = p.getReadMethod();
Method setMethod = p.getWriteMethod();
if (getMethod != null && setMethod != null) {
try {
Object result = getMethod.invoke(from);
setMethod.invoke(to, result);
} catch (Exception e) {
// 如果from没有此属性的get方法,跳过
continue;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return to;
}
/**
* 不支持to继承(to是其他bean的子类)
*/
public static Object coverBean2Bean(Object from, Object to) {
Class fClass = from.getClass();
Class tClass = to.getClass();
// 拿to所有属性(如果有继承,父类属性拿不到)
Field[] cFields = tClass.getDeclaredFields();
try {
for (Field field : cFields) {
String cKey = field.getName();
// 确定第一个字母大写
cKey = cKey.substring(0, 1).toUpperCase() + cKey.substring(1);
Method fMethod;
Object fValue;
try {
fMethod = fClass.getMethod("get" + cKey);// public方法
fValue = fMethod.invoke(from);// 取getfKey的值
} catch (Exception e) {
// 如果from没有此属性的get方法,跳过
continue;
}
try {
// 用fMethod.getReturnType(),而不用fValue.getClass()
// 为了保证get方法时,参数类型是基本类型而传入对象时会找不到方法
Method cMethod = tClass.getMethod("set" + cKey, fMethod.getReturnType());
cMethod.invoke(to, fValue);
} catch (Exception e) {
// 如果to没有此属性set方法,跳过
continue;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return to;
}
static final String spare = "======================================================\r\n";
/** * 打印bean信息
*/
public static void printInvoke(Object object) {
Method[] ms = object.getClass().getMethods();
String str = spare;
str += "start log object: " + object.getClass().getSimpleName() + "\r\n";
str += spare;
System.out.print(str);
for (int i = 0; i < ms.length; i++) {
if (ms[i].getName().indexOf("get") != -1
&& !ms[i].getName().equals("getClass")) {
try {
System.out.println(ms[i].getName() + " = "
+ ms[i].invoke(object));
} catch (Exception e) {
e.printStackTrace();
}
}
}
System.out.println(spare);
}
分享到:
相关推荐
很多公司里面不会用到H 所以只需要用SS不用h 相反来说用jdbc实现H的功能。
前台字符串赋值给JavaBean属性自动类型转换的实现(BeanUtils,ConverterConvertUtils三个类的使用)
Servlet中对获取网页表单数据自动给JavaBean赋值的BeanUtil工具类 Servlet中对获取网页表单数据自动给JavaBean赋值的BeanUtil工具类
希望能给大家带来方便,也希望大家能多上传资料共同学些
Java面向对象(基础)-- 属性赋值过程、JavaBean和UML类图
掌握JavaBean的创建方法,尤其是其内部属性的创建方法 掌握JavaBean在JSP中的定义方法以及参数封装方法 掌握JavaBean和JSP结合编程方法
//HashMap是非常常用的对象,用put(obj key,obj value)赋值,用get(obj key)获得对应的value 对象。 hm.put("sum",new Double(sum_dingdan)); }catch (Exception e){ System.out.println(e.getMessage());...
Avalon读取xml 没写成通用的 但是我用递归的算法 还是将xml中的内容赋值给了 我写的特定的javabean
BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
设计一个方法,给一个字符串(类)返回一个对象,对象里面还有属性值 例如考试系统中 Question类型 ATM系统 User类型 Question和User类型都是我们自定义的,这两个类的目的是为了存储值,更像个容器 Service Dao...
NULL 博文链接:https://linleizi.iteye.com/blog/1722171
自动读取数据库的表,生成Javabean或者生产insert、select、update、delete。还有生成给javabean赋值的语句。
查找第一个匹配项 查找最后一个匹配项 调用构造方法 调用静态方法 读取静态域(Static Fields) 表达式计算 伪Lambda表达式 供集合使用的伪属性 与Java语言不同的操作符 赋值与取值 5. 对象到数据类型的强制...
5.3.3 创建第一个Servlet对象 5.3.4 Servlet配置解析 5.3.5 使用Servlet处理业务逻辑 5.3.6 掌握Servelet处理流程 5.3.7 Eclipse快速创建Servlet 5.4 一夫当关——配置并应用Servlet过滤器 5.4.1 过滤器的基本原理 ...
BeanUtils提供了对于符合JavaBean规范的实体类进行赋值,取值,拷贝操作的一系列方法,可以自动完成数据类型转换,方便开发者在数据交互中使用。 所有的方法都是静态方法 三个方法 1. 赋值指定成员变量对应数据 ...
在容器中叫这个名称的对象只有一个spring项目实现步骤创建maven项目加入maven的依赖:加入spring依赖加入junit依赖创建类(接口和它的实现类创建spring需要使用的配置文件声明类的信息测试spring为javabean属性赋值...
8.9.2 一个JavaBean持久化的完整示例 第九章 安全 9.1 类加载器 9.1.1 类加载器的层次结构 9.1.2 将类加载器作为命名空间 9.1.3 编写你自己的类加载器 9.2 字节码校验 9.3 安全管理器与访问权限 9.3.1 Java 平台...
jsp:useBean 动作用来装载一个将在 JSP 页面中使用的 JavaBean。 setProperty 动作用于设置 useBean 中指定的 JavaBean 的属性值。 useBean 中 id 所指定的对象通过 setProperty 中对 property 指定的属性进行赋值后...
给已经实例化的javabean对象的属性赋值,一共有四种形式。 二 四种形式 三 实例 1、login.jsp <%@ page language=java import=java.util.* contentType=text/html; charset=utf-8 %> <% String...
ancestor_1.java 另一个基类定义 anonymousInner.java 匿名内部类 base.java 定义一个基类 BaseColors.java 一个简单的接口 basePoint.java 一个测试用的基类 Colorable.java 一个子接口 ColoredPoint.java ...