問題タブ [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 - BeanUtils で List インデックス付きプロパティを設定する
BeanUtils を使用して、次のような Java Bean と対話しようとしています。
BeanUtils documentationによると、 BeanUtilsは次のインデックス付きプロパティをサポートしていますList
。
JavaBeans 仕様の拡張として、BeanUtils パッケージは、基礎となるデータ型が java.util.List (または List の実装) であるすべてのプロパティもインデックス付けされると見なします。
ただし、次のようなことをしようとするとします。
出力は次のとおりです。
BeanUtils.setProperty()
インデックス付きプロパティを設定できないのに、設定できないのはなぜPropertyUtils.setProperty()
ですか? BeanUtils はList
s 内のオブジェクトの型変換をサポートしていませんか?
java - Commons Bean Utilsを使用してネストされたプロパティを自動的にインスタンス化することは可能ですか?
Apache Commons Bean UtilsのPropertyUtils.setProperty(object、name、value)メソッドを使用しています。
これらのクラスを提供する:
この:
これを試してみると、次のようになります 。org.apache.commons.beanutils.NestedNullException:Beanクラス「クラスA」の「bc」のプロパティ値がNull
ネストされたプロパティにnull値がある場合、さらに深く進む前に、それをインスタンス化しようとする(デフォルトのコンストラクター)ことをPropertyUtilsに伝えることは可能ですか?
他のアプローチはありますか?
ありがとうございました
java - Commons BeanUtilsを使用するときに、特定のクラスのすべてのサブクラスにConverterを登録するための最良の方法は何ですか?
たとえば、java.util.MapのすべてのインスタンスにConverterを登録したい場合、これを行う方法はありますか?
MyConverter#convert()
Mapの任意のインスタンス(HashMapなど)に対してメソッドが呼び出される場所はどこですか?
この背景には、BeanUtilsを使用してデータベースからさまざまな異なるBeanを設定していることがあります。それらのプロパティの一部は特定のインターフェイスを実装する列挙型であり、それらの値を設定するにはカスタムルーチンが必要です。問題のインターフェイスのすべての実装に単一のコンバータークラスを登録したいと思っていましたが、これを行う方法が見つからなかったため、Bean内のすべてのプロパティのクラスを調べて、その場で登録する必要がありました。コンバータークラスがたまたまこのインターフェースのインスタンスである場合は、コンバータークラスを登録します。
これはかなり厄介なようです、そして私はこれを行うためのより良い方法があるに違いないと確信していますか?
java - Java Beans、BeanUtils、および Boolean ラッパー クラス
BeanUtils を使用して、JAXB 経由で作成された Java オブジェクトを操作していますが、興味深い問題に遭遇しました。時々、JAXB は次のような Java オブジェクトを作成します。
次のコードは問題なく動作します。
happy
ただし、次のようにプロパティを取得しようとしています。
この例外が発生します。
すべてをプリミティブに変更するとboolean
、set 呼び出しと get 呼び出しの両方が機能するようになります。ただし、これらは生成されたクラスであるため、このオプションはありません。これは、戻り値の型がラッパー型ではなくプリミティブである場合にのみ、Java Bean ライブラリis<name>
がプロパティを表すメソッドを考慮するためであると考えられます。BeanUtils を介してこれらのようなプロパティにアクセスする方法について、誰か提案がありますか? 使用できる回避策はありますか?boolean
Boolean
java - JavaBeans コンパレータ/差分
プロパティによって 2 つの JavaBeans を比較し、それらの違いを教えてくれるライブラリはありますか?
これは BeanUtils が行うことだと思っていましたが、ドキュメントで見つけることができません
基本的に、それらを「比較」したい
java - ApacheCommonsBeanUtilsはリストプロパティを取得します
Apache Commons BeanUtilで、リスト内の型を取得する方法は?例えば
ありがとう。
java - BeanUtils.copyProperties - コレクション内のカスタム Bean 参照に値をコピーする方法
上記の copyProperties メソッドを使用すると、a_ClassA.myList は c.ClassB を参照します。
代わりに、c_ClassA から a_ClassA に値をコピーして、a_ClassA.myList に c.ClassB 参照ではなく a.ClassB 参照のリストが含まれるようにする方法を探しています。
java - Apache の BeanUtils に関する問題
Bean にプロパティを設定しようとしていますが、BeanUtils を機能させることができないようです...
Heresは、私が得ている問題の小さな例です。
これを実行すると、「名前を設定できません」という InvocationTargetException が発生します。また、プロパティ文字列を「名前」にすると、エラーは発生しませんが、名前が設定されていません。
どこが間違っているのか、誰かが正しい方向に向けることができますか?
java - BeanUtilsとReflectionToStringBuilderのパフォーマンス(Beanクラスで使用)
Webアプリケーションに多数のJavaBeanクラスがあり、toString()
これらのBeanにメソッドを実装する簡単な方法を見つけようとしています。このtoString()
メソッドは、アプリケーション全体のロギングに使用され、Bean内のすべての属性の属性と値のペアを出力する必要があります。
私は2つの選択肢を試しています:
1。BeanUtils.describe()
(Apache commons-beanutils)
2. ReflectionToStringBuilder.toString()
(Apache commons-lang)
これはトラフィックが多いと予想されるWebアプリケーションであるため、実装は軽量である必要があり、パフォーマンスに影響を与えないようにする必要があります。(メモリの使用、プロセッサの使用などが主な考慮事項です)。
上記の基準に従って、これらのどれがより良いパフォーマンスを発揮するか知りたいです。私の知る限り、リフレクションは大変な作業ですが、これら両方のオプションに関する詳細と洞察があれば、最適なソリューションを選択するのに役立ちます。
java - BeanUtils - InvocationTargetException を返す 'describe' メソッド
次のエンティティのプロパティをマップで取得しようとしています:
以下を通じて:
明らかcurrentObject
にPSParameterです ..
describe
関数が呼び出されるたびに、次のようになりInvocationTargetException
ます。
根本的な原因は次のとおりです。
なぜこれが起こっているのですか?つまり、文字列を整数に解析できないという例外の根本的な原因は明らかですが、BeanUtilsとその記述がそうしているのはなぜですか?
とにかくこれを回避するには、または代替手段はありますか?ありがとう!