ホームページ Java &#&チュートリアル オブジェクト属性をコピーする 3 つの方法の詳細な説明

オブジェクト属性をコピーする 3 つの方法の詳細な説明

Jun 29, 2017 am 11:20 AM
数種類 コピー 方法

オブジェクトプロパティをコピーする 3 つのメソッド:

1. Apache が提供する BeanUtil.copyProperties と PropertyUtil.copyProperties(

"Converted class",

"Class to be Converter");型変換は、PropertyUtils よりも効率がさらに劣ります

PropertyUtils.copyProperties("Converted class", "Class to be Converter");

ヒント: 後で支払う お金 (支払い前:後者は前にコピーされます) は例外をスローします2. spring

によって提供されるBeanUtil.copyPropertiesメソッド(

"変換されるクラス",

"変換されたクラス")

Apache パラメータの順序を逆にする 3. cglib が提供するコピーメソッド

BeanCopier copy=BeanCopier.create("変換されるクラス"

, "変換されたクラス"

, false ; クラス ", 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 }
ログイン後にコピー
コードを表示
BeanUtils 効率テストの最初の Apache 方法:

 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 効率テストの最初の Apache 方法:

 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 }
ログイン後にコピー
コードの表示

BeanUtils 効率テストの 2 番目の Spring メソッド:

 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 }
ログイン後にコピー
View Code

第四种方式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 }
ログイン後にコピー
View Code

 

 

总结:这四种方式的效率是由低到高。(注意Apache的PropertyUtils不能进行类型转换的问题)

以上がオブジェクト属性をコピーする 3 つの方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

QQ Music から歌詞をコピーする方法 歌詞をコピーする方法 QQ Music から歌詞をコピーする方法 歌詞をコピーする方法 Mar 12, 2024 pm 08:22 PM

私たちユーザーは、このプラットフォームを使用する際にいくつかの機能の多様性を理解できるはずであり、いくつかの曲の歌詞は非常によく書かれていることがわかります。何度か聞いて、とても深い意味を感じることもあるので、意味を理解したい場合は、そのままコピーしてコピーライティングとして使いたくなりますが、使いたい場合は、まだ必要です 歌詞をコピーする方法を学ぶ必要があります 誰もがこれらの操作に慣れていると思いますが、携帯電話での操作は確かに少し難しいです。 そこで、よりよく理解するために、今日は編集者がは、あなたを助けるためにここにあります。上記の操作エクスペリエンスのいくつかをわかりやすく説明しています。もし気に入ったら、エディターと一緒に見に来てください。お見逃しなく。​

コピーのショートカットキーは何ですか? コピーのショートカットキーは何ですか? Mar 10, 2023 pm 02:00 PM

コピーのショートカット キーは「Ctrl+c」、対応する貼り付けキーは「Ctrl+v」です。コンピュータでは、マウスを使用してテキストをドラッグして選択し、Ctrl キーを押したまま C キーをクリックして完了します。コピー; ショートカット キーとは、特定のキー、キー シーケンス、またはキーの組み合わせによって操作を完了することを指します。

PSコピーレイヤーのショートカットキー PSコピーレイヤーのショートカットキー Feb 23, 2024 pm 02:34 PM

PS コピー レイヤーのショートカット キーでは、PS を使用しているときにレイヤーをコピーしたい場合、ショートカット キー [Ctrl+J] を使用すると簡単にコピーできることがわかります。レイヤーをコピーするショートカットキーの具体的な操作方法を紹介しますが、以下に詳しい内容を記載していますので、ぜひご覧ください。 PS レイヤーのコピー ショートカット キーの答え: [Ctrl+J] 具体的な方法: 1. PS で画像を開き、コピーする必要があるレイヤーを選択します。 2. キーボードの[Ctrl+J]を同時に押して、レイヤーのコピーを完了します。その他のコピー方法: 1. 画像を開いた後、レイヤーを長押しして[新規レイヤー]アイコンを下に移動します。 2. アイコンに移動したら指を放します。 3. レイヤーのコピーが完了します。

コピーのショートカット キー Ctrl に何を追加すればよいですか? コピーのショートカット キー Ctrl に何を追加すればよいですか? Mar 15, 2024 am 09:57 AM

Windows では、コピーのショートカット キーは Ctrl C、Apple では、コピーのショートカット キーは Command C、Linux では、コピーのショートカット キーは Ctrl Shift C です。これらのショートカット キーを知っておくと、ユーザーの作業効率が向上し、テキストやファイルのコピー操作が容易になります。

Excel でテーブルをコピーし、元の形式を維持するにはどうすればよいですか? Excel でテーブルをコピーし、元の形式を維持するにはどうすればよいですか? Mar 21, 2024 am 10:26 AM

Excelで複数の表データを処理することが多いのですが、設定した表をコピー&ペーストすると元の形式に戻ってしまい、再設定する必要があります。実は、Excelのコピー表を元の形式のままにする方法があり、その具体的な方法を編集者が以下で説明します。 1. Ctrl キーのドラッグとコピーの操作手順: ショートカット キー [Ctrl+A] を使用してテーブルの内容をすべて選択し、移動カーソルが表示されるまでマウス カーソルをテーブルの端に移動します。 [Ctrl]キーを押したままテーブルを目的の位置までドラッグすると移動が完了します。このメソッドは単一のワークシートでのみ機能し、異なるワークシート間で移動できないことに注意してください。 2. 選択的に貼り付ける手順: [Ctrl+A] ショートカット キーを押してすべてのテーブルを選択し、 を押します。

コピー&ペーストのショートカットの使い方を学ぶ コピー&ペーストのショートカットの使い方を学ぶ Jan 13, 2024 pm 12:27 PM

多くのユーザーがコンピュータを使用するとき、コピー&ペーストする必要があるものに遭遇した場合、マウスでコピーするのは非常に面倒です. そこで、コピー&ペーストのためのショートカットキーを使用する方法を教えてください? 詳細なチュートリアルをご覧ください~ショートカットのコピーと貼り付け キーの使用方法: 1. コピー キー: Ctrl+C、コピーするテキストまたは画像を選択し、ショートカット キーを押します。 2. 貼り付けキー: Ctrl+V. 貼り付けたい場所にショートカット キーを直接押すだけです。

Vue でドラッグ アンド ドロップ要素をコピーして移動するにはどうすればよいですか? Vue でドラッグ アンド ドロップ要素をコピーして移動するにはどうすればよいですか? Jun 25, 2023 am 08:35 AM

Vue は、便利なドラッグ アンド ドロップ機能を提供する人気の JavaScript フレームワークで、要素を簡単にコピーしたり移動したりできます。次に、Vue でドラッグ アンド ドロップ要素をコピーおよび移動する方法を見てみましょう。 1. ドラッグ アンド ドロップ要素の基本的な実装 Vue でドラッグ アンド ドロップ要素をコピーおよび移動するには、まず要素の基本的なドラッグ アンド ドロップ機能を実装する必要があります。具体的な実装方法は以下の通りです。 ドラッグする必要がある要素をテンプレートに追加します: &lt;divclass="drag-elem"

CMS DreamWeaver データベース ファイルをバックアップするにはどうすればよいですか? CMS DreamWeaver データベース ファイルをバックアップするにはどうすればよいですか? Mar 13, 2024 pm 06:09 PM

CMS DreamWeaver データベース ファイルをバックアップするにはどうすればよいですか? CMS を使用して Web サイトを構築するプロセスでは、データの損失や損傷を防ぐためにデータベース ファイルのセキュリティを確保することが非常に重要です。データベース ファイルのバックアップは必須の操作です。以下では、CMS DreamWeaver データベース ファイルのバックアップ方法と具体的なコード例を紹介します。 1. バックアップに phpMyAdmin を使用する phpMyAdmin は、データベースを簡単にバックアップできる一般的に使用されるデータベース管理ツールです。以下はphpMyAdmを使用しています

See all articles