問題タブ [apache-commons-beanutils]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java - Java を簡素化する方法
私はSpring FrameworkでいくつかのJavaコードを書いています。
person と person1 の 2 つの Bean があります。これらは構造がわずかに異なります。つまり、それぞれの変数名がわずかに異なります。
ある Bean から別の Bean に詳細をコピーしようとしています。値がnullでない場合にのみ値をコピーしたい。BeanUtils という API を見たことがありますが、これは null かどうかに関係なくコピーされます。
これが私のコードです:
コピーする必要がある約 40 のノードがあり、これにより非常に醜いコードが作成されます。誰かがこれを行うためのより良い方法を持っていますか? 多分私がマッピングか何かを作ってそれをループしたら?わからない。
そうでない場合、null 値をコピーせずに BeanUtils にコピーを実行させることができるかどうかは誰にもわかりませんか?
理由は、2 番目の Bean である person1 にすでに多数の値があるためです。上書きする新しい値がある場合にのみ、それを上書きしたいと思います。
いつものように、変数ははるかに大きなシステムの一部であり、名前を標準化することはできません。
ありがとう
java - BeanUtilsを使用してフィールド値を取得する
特定のカスタムアノテーションでマークされていないプライベートフィールド値を抽出したいのですが、これはBeanUtilsを介して可能ですか?はいの場合、どのように?
java - 再帰的な BeanUtils.describe()
「顧客」の複雑な属性で describe() メソッドを再帰的に呼び出すBeanUtils.describe(customer)のバージョンはありますか。
ここでは、describe メソッドで address 属性の内容も取得したいと考えています。
現在、次のようにクラスの名前を確認できます。
java - フィールドの名前が異なる場合、POJO を DTO にマップする方法
問題の説明:
データベースからマップされたPOJOオブジェクトがあります。データベーステーブルと同じ名前の属性(列)を持つもの。ただし、いくつかの変更が必要であり、DTO を使用する必要があります。しかし、問題は、データベーステーブルで定義されているように、DTO が異なる名前の属性を持つことです (このため、データベーステーブルを POJO にマッピングし、次に POJO を DTOにマッピングしています)。したがって、マッピング時にフィールドとフィールドマッピング (1 つのフィールド) を使用する必要があります。 POJO と DTO オブジェクトの 1 つのフィールド)、50 行のコード ( 50 列のデータベース テーブル) を必要とします。DTO を使用して POJO に直接マップするソリューションはありますか? または、データベース テーブルと POJO/DTO の列名が異なる場合、データベース テーブルを POJO/DTO にマップする方法はありますか?
例えば
java - BeanUtils.copyProperties() 対 DozerBeanMapper.map()
BeanUtils.copyProperties()
すべてのフィールドをマップする必要があり、フィールド名が同じである場合、Bean から dto へのマッピングに使用しています。DozerBeanMapper.map()
しかし、この状況で BeanUtils を使用することを考えていなかったので、ソース Bean のすべてのフィールドを宛先 dto にマップする必要はありません 。
したがって、両方の方法に独自の機能があると思いますが、両者の間に類似点はありません。私は正しいですか?私を案内してください。
android - Property Utils の Android 互換の代替手段はありますか?
org.apache.commons.beanutils.PropertyUtils
Android に相当するハンディダンディはありますか?
utils
に依存しているため、Android アプリでPropertyDescriptor
Beanを使用できないようですIndexedPropertyDescriptor
。だから私は何か代替案があるかどうか疑問に思っていますか?
基本的に私がやりたいことは、メソッド名を文字列「someMethod」として使用し、それを にフィードすることsetMethod(anObject, "someMethod", value)
ですPropertyUtils
。しかし、反省の厄介さに頼る必要はありません...
それとも、手を縛られていて、リフレクションを使用する必要がありますか?
java - BeanUtilsを使用して、ターゲット内のプロパティが少ないターゲットBeanにソースをコピーするにはどうすればよいですか?
Beanutils.copyProperties()は、ターゲットに存在しないプロパティを使用してソースからターゲットにコピーするときに例外をスローすると思います。String [] ignoreListパラメータは、ターゲットに存在するプロパティのみを無視するようです。ソースプロパティの一部を無視する方法はありますか?どんな助けでも謙虚に感謝します。ありがとう
java - Java でリフレクションを使用してデフォルト値を設定する
いくつかの拡張がある複雑なオブジェクト階層があります。
すべてのフィールドにデフォルト値を反射的に挿入できるライブラリを探しています。
例えば:
オブジェクト (この場合はFoo
クラス) をパラメーターとして取り、すべてのフィールドに既定値を反射的に挿入するライブラリが必要です (既定値を定義できればさらに優れています)。また、すべてのマップ、リスト、セットなどは新しいものを取得する必要があります
BeanUtilsを見てきましたが、私の知る限り、探しているものを正確にサポートしていません。
注: これらは単なる例であり、私のオブジェクトははるかに複雑で大きくなっています。それらには多くのオブジェクトがあり、各オブジェクトには多くのオブジェクトがあります。マップ、リストなどの両方。
BeanUtils や Google Guava などのいくつかのライブラリを組み合わせて、自分のものにする方が良いでしょうか?
java - 所有しているように見えるモニターでプログラムがブロックされる原因は何ですか?
私は最近、同じコードを実行している 3 つの別々のサーバーですべて同じ症状が発生するという問題が発生しました。これらは、json-lib を使用して JSON 応答を作成する大量の REST / JSON サーバーです。最終的にはすべてのサーバーがハングし、ほとんどのスレッドが 1 つの特定のロックを待機します。すべてのロックを保持しているスレッドは、同じ基本的な外観を持っていました。
これは、このスレッドが保持している唯一のロックです。モニターのエントリ値が何を指しているのか簡単に調べてみましたが、うまくいきませんでした。このスレッドでは、値 [0x000000004dec8000] はオブジェクト ID を参照しているようには見えず、スタック トレースの他の場所にも表示されません。
ここでまったく同じ問題が見つかりましたが、答えはありません。この古いSOの質問は、モニターを待機中のスレッドの1つに適切に割り当てていないことが原因で発生したJVMのバグであると述べています。スレッドがモニターをロックしているとマークされているが、実際にはモニターが与えられていないことを完全に理解しているかどうかは完全にはわかりませんが、これらの操作が別々である可能性があり、ロックを割り当てた後に JVM のバグが問題を引き起こすことは理にかなっていますが、モニターを割り当てる前に(私はいつも同じものだと思っていましたが)。
私が使用しているJavaのバージョンは次のとおりです。
Java バージョン "1.6.0_18" Java(TM) SE ランタイム環境 (ビルド 1.6.0_18-b07) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 16.0-b13、混合モード)
の上:
CentOS リリース 5.2 (最終版) カーネル バージョン: 2.6.18-194.17.4.el5xen
これは本当に単なる JVM のバグですか、それとも他に調べるべきことがありますか?
編集:
使用していた commons-beanutils のバージョンは 1.7 でした。その後、問題が解決するかどうかを確認するために 1.8 にアップグレードしました。
java - 単純なプロパティ値を取得しようとすると、PropertyUtils.getPropertyが失敗します
PropertyUtils.getProperty(bean, fieldName)
メソッドに奇妙な問題があり、。を取得しましたjava.lang.NoShuchMethodException
。
pojoという単純なJavaクラスがあるとします。
とのような発信者クラス
最初のPropertyUtils.getProperty
呼び出しは正常に機能し、2番目の呼び出しは正常に機能throw
しNoSuchMethodExeption
ます。
私は何か愚かなものが欠けているのか、それとも本当にバグなのか知りたいです:)