zoukankan      html  css  js  c++  java
  • JavaBean及BeanUtils的使用

    一、javaBean类的规范:
      1. 必须要有一个默认构造器(无参构造器)
      2. 提供get/set方法,如果只有get方法,那么这个属性是只读属性!
      3. 方法名称满足一定的规范,那么它就是属性!boolean类型的属性,它的读方法可以是is开头,也可以是get开头!
      4. 属性:有get/set方法的成员,还可以没有成员,只有get/set方法。即:

             真正决定是否存在属性(与成员变量不同)的是是否存在get/set方法

                                                                                  而不是是否存在成员变量。

    二、BeanUtils的使用:

    准备工作:导入俩个包commons-beanutils.jar、commons-logging.jar

    根据反射获取实例对象:

     ​​​​       Class<Bean> clazz = Bean.class;
            Object bean = clazz.newInstance();

    BeanUtils所拥有方法:

    BeanUtils.getProperty(Object bean, String propertyName):根据get方法后面首字母小写英文

                                                                                                    获取属性
    BeanUtils.setProperty(Object bean, String propertyName, String propertyValue):根据set方法

                                                                                                    后面首字母小写英文设置属性
    BeanUtils.populate(Map map, Object bean):将Map数据封装到JavaBean对象中

    CommontUtils.toBean(Map map, Class class):补充的工具类方法,以下为工具类

    package Tool;
    
    import java.util.Map;
    import java.util.UUID;
    
    import javax.swing.text.StyledEditorKit.ForegroundAction;
    
    import org.apache.commons.beanutils.BeanUtils;
    
    public class commonUtils {
    	//生成不重复的32位长的大写字符串
    	public static String uuid() {
    		return UUID.randomUUID().toString().replace("-", "").toUpperCase();
    	}
    	// 把map转换成指定类型的javaBean对象
    	public static <T> T toBean(Map map, Class<T> clazz) {
    		try {
    			/*
    			 * 1. 创建指定类型的javabean对象
    			 */
    			T bean = clazz.newInstance();
    			/*
    			 * 2. 把数据封装到javabean中
    			 */
    			BeanUtils.populate(bean, map);
    			/*
    			 * 3. 返回javabean对象
    			 */
    			return bean;
    		} catch(Exception e) {
    			throw new RuntimeException(e);		//如果想让用户调用时不用try-catch,使用throw new RuntimeException(e)来抛出运行异常
    		}
    	}
    }
  • 相关阅读:
    vue 2.x 之父组件修改子组件变量
    vue 2.x 之滚动到页面底部加载数据
    sass中calc操作变量失效
    VsCode 同步配置到Gitee(码云)云端之code settings sync 插件
    VSCode常用插件之code settings sync使用
    Vue开发规范
    vue-router 3.x(路由)详细教程
    java设计模式之十桥接模式(Bridge)
    java设计模式之九外观模式(Facade)
    装饰模式与代理模式的区别(转载)
  • 原文地址:https://www.cnblogs.com/MrQlyn/p/10236321.html
Copyright © 2011-2022 走看看