問題タブ [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.

0 投票する
1 に答える
7514 参照

java - BeanUtils で List インデックス付きプロパティを設定する

BeanUtils を使用して、次のような Java Bean と対話しようとしています。

BeanUtils documentationによると、 BeanUtilsは次のインデックス付きプロパティをサポートしていますList

JavaBeans 仕様の拡張として、BeanUtils パッケージは、基礎となるデータ型が java.util.List (または List の実装) であるすべてのプロパティもインデックス付けされると見なします。

ただし、次のようなことをしようとするとします。

出力は次のとおりです。

BeanUtils.setProperty()インデックス付きプロパティを設定できないのに、設定できないのはなぜPropertyUtils.setProperty()ですか? BeanUtils はLists 内のオブジェクトの型変換をサポートしていませんか?

0 投票する
7 に答える
10912 参照

java - Commons Bean Utilsを使用してネストされたプロパティを自動的にインスタンス化することは可能ですか?

Apache Commons Bean UtilsのPropertyUtils.setProperty(object、name、value)メソッドを使用しています。

これらのクラスを提供する:

この:

これを試してみると、次のようになります 。org.apache.commons.beanutils.NestedNullException:Beanクラス「クラスA」の「bc」のプロパティ値がNull

ネストされたプロパティにnull値がある場合、さらに深く進む前に、それをインスタンス化しようとする(デフォルトのコンストラクター)ことをPropertyUtilsに伝えることは可能ですか?

他のアプローチはありますか?

ありがとうございました

0 投票する
2 に答える
3984 参照

java - Commons BeanUtilsを使用するときに、特定のクラスのすべてのサブクラスにConverterを登録するための最良の方法は何ですか?

たとえば、java.util.MapのすべてのインスタンスにConverterを登録したい場合、これを行う方法はありますか?

MyConverter#convert()Mapの任意のインスタンス(HashMapなど)に対してメソッドが呼び出される場所はどこですか?

この背景には、BeanUtilsを使用してデータベースからさまざまな異なるBeanを設定していることがあります。それらのプロパティの一部は特定のインターフェイスを実装する列挙型であり、それらの値を設定するにはカスタムルーチンが必要です。問題のインターフェイスのすべての実装に単一のコンバータークラスを登録したいと思っていましたが、これを行う方法が見つからなかったため、Bean内のすべてのプロパティのクラスを調べて、その場で登録する必要がありました。コンバータークラスがたまたまこのインターフェースのインスタンスである場合は、コンバータークラスを登録します。

これはかなり厄介なようです、そして私はこれを行うためのより良い方法があるに違いないと確信していますか?

0 投票する
3 に答える
8324 参照

java - Java Beans、BeanUtils、および Boolean ラッパー クラス

BeanUtils を使用して、JAXB 経由で作成された Java オブジェクトを操作していますが、興味深い問題に遭遇しました。時々、JAXB は次のような Java オブジェクトを作成します。

次のコードは問題なく動作します。

happyただし、次のようにプロパティを取得しようとしています。

この例外が発生します。

すべてをプリミティブに変更するとboolean、set 呼び出しと get 呼び出しの両方が機能するようになります。ただし、これらは生成されたクラスであるため、このオプションはありません。これは、戻り値の型がラッパー型ではなくプリミティブである場合にのみ、Java Bean ライブラリis<name>がプロパティを表すメソッドを考慮するためであると考えられます。BeanUtils を介してこれらのようなプロパティにアクセスする方法について、誰か提案がありますか? 使用できる回避策はありますか?booleanBoolean

0 投票する
1 に答える
1865 参照

java - JavaBeans コンパレータ/差分

プロパティによって 2 つの JavaBeans を比較し、それらの違いを教えてくれるライブラリはありますか?

これは BeanUtils が行うことだと思っていましたが、ドキュメントで見つけることができません

基本的に、それらを「比較」したい

0 投票する
1 に答える
3929 参照

java - ApacheCommonsBeanUtilsはリストプロパティを取得します

Apache Commons BeanUtilで、リスト内の型を取得する方法は?例えば

ありがとう。

0 投票する
1 に答える
1914 参照

java - BeanUtils.copyProperties - コレクション内のカスタム Bean 参照に値をコピーする方法

上記の copyProperties メソッドを使用すると、a_ClassA.myList は c.ClassB を参照します。

代わりに、c_ClassA から a_ClassA に値をコピーして、a_ClassA.myList に c.ClassB 参照ではなく a.ClassB 参照のリストが含まれるようにする方法を探しています。

0 投票する
1 に答える
2047 参照

java - Apache の BeanUtils に関する問題

Bean にプロパティを設定しようとしていますが、BeanUtils を機能させることができないようです...

Heresは、私が得ている問題の小さな例です。

これを実行すると、「名前を設定できません」という InvocationTargetException が発生します。また、プロパティ文字列を「名前」にすると、エラーは発生しませんが、名前が設定されていません。

どこが間違っているのか、誰かが正しい方向に向けることができますか?

0 投票する
4 に答える
16546 参照

java - BeanUtilsとReflectionToStringBuilderのパフォーマンス(Beanクラスで使用)

Webアプリケーションに多数のJavaBeanクラスがあり、toString()これらのBeanにメソッドを実装する簡単な方法を見つけようとしています。このtoString()メソッドは、アプリケーション全体のロギングに使用され、Bean内のすべての属性の属性と値のペアを出力する必要があります。

私は2つの選択肢を試しています:
1。BeanUtils.describe()(Apache commons-beanutils)
2. ReflectionToStringBuilder.toString()(Apache commons-lang)

これはトラフィックが多いと予想されるWebアプリケーションであるため、実装は軽量である必要があり、パフォーマンスに影響を与えないようにする必要があります。(メモリの使用、プロセッサの使用などが主な考慮事項です)。

上記の基準に従って、これらのどれがより良いパフォーマンスを発揮するか知りたいです。私の知る限り、リフレクションは大変な作業ですが、これら両方のオプションに関する詳細と洞察があれば、最適なソリューションを選択するのに役立ちます。

0 投票する
1 に答える
6000 参照

java - BeanUtils - InvocationTargetException を返す 'describe' メソッド

次のエンティティのプロパティをマップで取得しようとしています:

以下を通じて:

明らかcurrentObjectPSParameterです ..

describe関数が呼び出されるたびに、次のようになりInvocationTargetExceptionます。

根本的な原因は次のとおりです。

なぜこれが起こっているのですか?つまり、文字列を整数に解析できないという例外の根本的な原因は明らかですが、BeanUtilsとその記述がそうしているのはなぜですか?

とにかくこれを回避するには、または代替手段はありますか?ありがとう!