对象的复制,提升整洁度

BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。

使用PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个参数是源bean。

 
例一
Book srcBook = new Book();
srcBook.setName("Java");
Book destBook = new Book();
PropertyUtils.copyProperties(destBook, srcBook);
System.out.println(destBook.getName());
 
 
例二(对删除的数据进行备份)
Student s = new Student();
s.setName("xy")
................
StudentBak sbak = new StudentBak();
PropertyUtils.copyProperties(sbak , s);
StudentBakDao.save(sbak);
StudentDao.delete(s);
 
没有PropertyUtils.copyProperties,我们只能
StudentBak sbak = new StudentBak();
sbak.setName(s.getName);
.........................
如果有是十个属性,我们不是累呆了。


该方法做对象的拷贝很方便,但是它的性能问题相当差
 
看下面的测试代码: 
public class A
{
private String name;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}

import org.apache.commons.beanutils.PropertyUtils;

public class PropertyUtilsTest
{
public static void main(String []args)
{

 

普通的copy,每个字段拷贝

A a1 = new A();
a1.setName("wang");

A a2 = new A();  
long b = new java.util.Date().getTime();
a2.setName(a1.getName());

long e = new java.util.Date().getTime();

System.out.println("time1="+(e-b));
 
try
{
PropertyUtils.copyProperties方法copy
A a3 = new A();
b = new java.util.Date().getTime();
PropertyUtils.copyProperties(a3, a1);
e = new java.util.Date().getTime();
System.out.println("time2="+(e-b));

}
 
catch (Exception e1)
{
e1.printStackTrace();

}
}

最后输出:
 
time1=0
time2=265
 
两种方法时间差那么多!
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
代码整洁是一个重要的开发原则,可以提高代码的可读性和可维护性。在VSCode中,你可以通过一些配置来帮助实现代码整洁。 首先,你可以配置格式化选项,例如对大括号的格式化是否行内不自动换行。通过设置"brace_style": "collapse,preserve-inline",你可以让大括号在同一行或者换行显示。 另外,你可以配置缩进字符数,通过设置"indent_size": 4,你可以指定每个缩进的字符数为4个。 如果你使用了eslint,你也可以配合使用。将"jslint_happy"设置为false可以避免与eslint冲突。 对于不同类型的文件,你可以设置默认的格式化程序。例如,在"[vue]"中设置"editor.defaultFormatter": "HookyQR.beautify",将Vue文件的默认格式化程序设置为beautify。 最后,你可以开启默认保存即格式化功能,通过设置"editor.formatOnSave": true,每次保存文件时都会自动格式化代码。 通过以上的配置,你可以在VSCode中实现代码整洁,提高代码的可读性和可维护性。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [巧用Vscode编辑器,快速格式化代码,让你的代码变得整洁又美观](https://blog.csdn.net/marendu/article/details/117153345)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值