Detailed explanation of three methods of object attribute copying
Three methods of copying object properties:
1. BeanUtil.copyProperties and PropertyUtil.copyProperties two methods provided by Apache
BeanUtils.copyProperties("Converted class ", "Class to be converted"); //One more step of type conversion, even less efficient than PropertyUtils
PropertyUtils.copyProperties( "Converted class", "Class to be converted");
## Tip: Pay later (pay later) Front: copy the latter to the front) will throw an exception
2. BeanUtil.copyProperties method provided by spring BeanUtils.copyProperties("Class to be converted ", "Converted class");
Reverse the order of Apache parameters
3. The copy method provided by cglib BeanCopier copy=BeanCopier.create("Class to be converted", "Converted class", false);
copy.copy(from, to,null);##4. The copy method provided by spring
BeanCopier copy=BeanCopier. create("Class to be converted"
, "Converted class", false); copy.copy(from, to ,
null);

1 /**2 * Created by hunt on 2017/6/28.3 */4 @Data5 public class TestFrom {6 private String name;7 }


1 import lombok.Data;2 3 /**4 * Created by hunt on 2017/6/28.5 */6 @Data7 public class TestTo {8 private String name;9 }


1 import org.apache.commons.beanutils.BeanUtils; 2 3 import java.lang.reflect.InvocationTargetException; 4 5 /** 6 * Created by hunt on 2017/6/28. 7 */ 8 public class TestDemo { 9 public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {10 TestFrom testFrom = new TestFrom();11 testFrom.setName("hunt");12 TestTo testTo = new TestTo();13 long begin = System.currentTimeMillis();14 for (int i = 0; i <1000000 ; i++) {//一百万次15 BeanUtils.copyProperties(testTo,testFrom);16 }17 long end = System.currentTimeMillis();18 long mis = end -begin;19 System.out.println("apache的BeanUtils.copyProperties耗时" + mis +"毫秒");20 System.out.println(testTo);21 }22 }

PropertyUtils efficiency test of the first Apache method:

1 import org.apache.commons.beanutils.PropertyUtils; 2 3 import java.lang.reflect.InvocationTargetException; 4 5 /** 6 * Created by hunt on 2017/6/28. 7 */ 8 public class TestDemo { 9 public static void main(String[] args) throws IllegalAccessException, NoSuchMethodException, InvocationTargetException {10 TestFrom testFrom = new TestFrom();11 testFrom.setName("hunt");12 TestTo testTo = new TestTo();13 long begin = System.currentTimeMillis();14 for (int i = 0; i <1000000 ; i++) {//一百万次15 PropertyUtils.copyProperties(testTo,testFrom);16 }17 long end = System.currentTimeMillis();18 long mis = end -begin;19 System.out.println("apache的PropertyUtils.copyProperties耗时" + mis +"毫秒");20 System.out.println(testTo);21 }22 }

##The second Spring method of BeanUtils efficiency test:
1 import org.springframework.beans.BeanUtils; 2 3 /** 4 * Created by hunt on 2017/6/28. 5 */ 6 public class TestDemo { 7 public static void main(String[] args) { 8 TestFrom testFrom = new TestFrom(); 9 testFrom.setName("hunt");10 TestTo testTo = new TestTo();11 long begin = System.currentTimeMillis();12 for (int i = 0; i <1000000 ; i++) {//一百万次13 BeanUtils.copyProperties(testFrom,testTo);//没抛异常14 }15 long end = System.currentTimeMillis();16 long mis = end -begin;17 System.out.println("Spring的PropertyUtils.copyProperties耗时" + mis +"毫秒");18 System.out.println(testTo);19 }20 }


第三种方式cglib的copy效率测试


1 import net.sf.cglib.beans.BeanCopier; 2 3 /** 4 * Created by hunt on 2017/6/28. 5 */ 6 public class TestDemo { 7 public static void main(String[] args) { 8 TestFrom testFrom = new TestFrom(); 9 testFrom.setName("hunt");10 TestTo testTo = new TestTo();11 long begin = System.currentTimeMillis();12 for (int i = 0; i <1000000 ; i++) {//一百万次13 BeanCopier copier = BeanCopier.create(TestFrom.class,TestTo.class,false);14 copier.copy(testFrom,testTo,null);15 }16 long end = System.currentTimeMillis();17 long mis = end -begin;18 System.out.println("cglib的copier.copy耗时" + mis +"毫秒");19 System.out.println(testTo);20 }21 }
第四种方式Spring的copy效率测试


1 import org.springframework.cglib.beans.BeanCopier; 2 3 /** 4 * Created by hunt on 2017/6/28. 5 */ 6 public class TestDemo { 7 public static void main(String[] args) { 8 TestFrom testFrom = new TestFrom(); 9 testFrom.setName("hunt");10 TestTo testTo = new TestTo();11 long begin = System.currentTimeMillis();12 for (int i = 0; i <1000000 ; i++) {//一百万次13 BeanCopier copier = BeanCopier.create(TestFrom.class,TestTo.class,false);14 copier.copy(testFrom,testTo,null);15 }16 long end = System.currentTimeMillis();17 long mis = end -begin;18 System.out.println("Spring的copier.copy耗时" + mis +"毫秒");19 System.out.println(testTo);20 }21 }
总结:这四种方式的效率是由低到高。(注意Apache的PropertyUtils不能进行类型转换的问题)
The above is the detailed content of Detailed explanation of three methods of object attribute copying. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



We users should be able to understand the diversity of some functions when using this platform. We know that the lyrics of some songs are very well written. Sometimes we even listen to it several times and feel that the meaning is very profound. So if we want to understand the meaning of it, we want to copy it directly and use it as copywriting. However, if we want to use it, we still need to You just need to learn how to copy lyrics. I believe that everyone is familiar with these operations, but it is indeed a bit difficult to operate on a mobile phone. So in order to give you a better understanding, today the editor is here to help you. A good explanation of some of the above operating experiences. If you also like it, come and take a look with the editor. Don’t miss it.

The shortcut key for copying is "Ctrl+c", and the corresponding paste key is "Ctrl+v"; on the computer, use the mouse to drag and select text, hold down Ctrl, and then click the C key to complete the copy; A shortcut key refers to completing an operation through certain specific keys, key sequences, or key combinations.

In the PS copy layer shortcut keys, we can know that if you want to copy a layer when using PS, you can use the shortcut key [Ctrl+J] for quick copying. This introduction to the shortcut keys for copying layers can tell you the specific operation method. The following is the detailed content, so take a look. PS copy layer shortcut key answer: [Ctrl+J] Specific method: 1. Open the image in PS and select the layer that needs to be copied. 2. Press [Ctrl+J] on the keyboard at the same time to complete the copy of the layer. Other copying methods: 1. After opening the image, press and hold the layer and move the [New Layer] icon downwards. 2. After moving to the icon, let go. 3. The layer copy is completed.

On Windows, the shortcut key for copying is Ctrl C; on Apple, the shortcut key for copying is Command C; on Linux, the shortcut key for copying is Ctrl Shift C. Knowing these shortcut keys can improve the user's work efficiency and facilitate text or file copy operations.

When many users use computers, if they encounter something that needs to be copied and pasted, it is very troublesome to copy with the mouse. So how to use the shortcut keys for copy and paste? Come and take a look at the detailed tutorial ~ Copy and paste shortcuts How to use the key: 1. Copy key: Ctrl+C, select the text or image to be copied, and press the shortcut key. 2. Paste key: Ctrl+V. Just press the shortcut key directly where you want to paste.

We often use Excel to process multiple table data. After copying and pasting the set table, the original format returns to the default, and we have to reset it. In fact, there is a way to make the Excel copy table retain the original format. The editor will explain the specific method to you below. 1. Ctrl key dragging and copying operation steps: Use the shortcut key [Ctrl+A] to select all table contents, then move the mouse cursor to the edge of the table until the moving cursor appears. Press and hold the [Ctrl] key, and then drag the table to the desired position to complete the movement. It should be noted that this method only works on a single worksheet and cannot be moved between different worksheets. 2. Steps for selective pasting: Press the [Ctrl+A] shortcut key to select all tables, and press

Vue is a popular JavaScript framework that provides a convenient drag-and-drop function, allowing us to easily copy and move elements. Next, let's take a look at how to copy and move drag-and-drop elements in Vue. 1. Basic implementation of drag-and-drop elements To copy and move drag-and-drop elements in Vue, you first need to implement the basic drag-and-drop function of the element. The specific implementation method is as follows: Add the elements that need to be dragged in the template: <divclass="drag-elem"

How to back up CMS DreamWeaver database files? In the process of using CMS to build a website, it is very important to ensure the security of database files to prevent data loss or damage. Backing up database files is an essential operation. The following will introduce how to back up CMS DreamWeaver database files and attach specific code examples. 1. Use phpMyAdmin for backup. phpMyAdmin is a commonly used database management tool through which you can easily back up the database. The following is using phpMyAdm
