問題タブ [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 Bean からネストされたプロパティ パス名を生成する方法は?
以下のような Java Bean 定義が与えられた場合
上記の Bean から可能なすべての深くネストされたプロパティ パス名を生成できるユーティリティ クラスを探しています。
現在、apache bean utils パッケージは、指定された Bean のプロパティを生成できますが、アドレスなどの内部オブジェクトは生成できません。Spring のユーティリティ クラスはありますか? コマンド オブジェクトを指定してフォームを自動生成する必要がある場合、Spring Roo のようなプロジェクトにはそのようなユーティリティが必要であると推測しています。どんな助けでも大歓迎です。ありがとうございます
java - BeanUtils を使用してインデックス付きプロパティを検出する方法
次のようなクラスがあるとします。
BeanUtils または PropertyUtils describe メソッドを使用すると、このプロパティはマップに返されません。クラスにインデックス付きプロパティがあることを確認するにはどうすればよいですか?
ティア
java - ジェネリックスをcommonsbeanutilsとどのように誤用していますか?
私は2つのシンプルなインターフェースを持っています:
と
今、私がクラスを持っている場合:
そして、をインスタンス化してperson
から、それを渡すと、BeanUtils
奇妙な動作が発生します。たとえば、BeanUtilsを使用してidを設定すると正常に機能する場合と、Idの「write」メソッドが見つからないために例外が発生する場合があります。リフレクション中に、Serializableのゲッターは検出されますが、Longは検出されず、Serializableのセッターは検出されないようです。これは一貫して行われないため、person.getClass()。getDeclaredMethod( "id")を呼び出すと、常に同じメソッドが返されるとは限らないのではないかと思いますが、それについては間違っている可能性があります。
とにかく、この一貫性のない動作は本当に腹立たしいものです。たとえば、Eclipseでは機能しますがMavenでは機能しないか、長時間機能し、その後、他の場所で無関係な変更を加えると機能しなくなります。
明らかに、私はジェネリックを十分に理解していないので、何が起こっているのかを理解できませんが、誰かが私にそれを説明し、それを回避する方法も説明できますか?
java - Commons BeanUtils の BeanComparator に相当するジェネリック
Commons BeanUtilsのBeanComparatorに相当するもので、ジェネリックを使用できるかどうかを知りたいです(また、Commons Collections に依存しません)。
java - Java Bean に含まれるすべてのメンバー変数のフィールドを見つける方法
ユーザーが Bean を選択し、そのフィールドを編集し、作成された Bean のインスタンスをキューに追加できる Java を使用して GUI を作成したいと考えています。私の質問は、フィールドへのアクセスに関するものです。MyParentObject から継承するクラス MyCompositeObject があります。MyParentObject は複数の Bean で構成され、それぞれがより多くの Bean で構成されています。クラス MyCompositeObject も Bean で構成されています。MyCompositeObject からアクセス可能なすべてのフィールドを検索したいと考えています。
BeanUtils API を使用しようとしましたが、すべてのメンバー Bean のフィールドを取得しようとして行き詰まりました。私が想像しているのは、MyCompositeObject のインスタンスからアクセスできるすべてのフィールドの深さ優先検索です。たとえば、これにはフィールド MyCompositeObject.fieldOne、MyCompositeObject.number、MyCompositeObject.fieldThree.aBoolean が含まれますが、これらに限定されません。
私が試したときに気づきました:
私が頭の上にいたこと。私の研究では、これまでのところ、私が説明したことを実行できる事前構築済みの方法は見つかっていません。これを行うことができる API メソッドを教えてください。または、自分で作成する方法を教えてください。ありがとう。
java - Java Apache Beanutils とリフレクション - プロパティを取得するためのパフォーマンス
Java Bean クラスがたくさんあります。それらのすべてのフィールド/プロパティをループして、単一のオブジェクトに配置する必要があります。例えば。
一日の終わりに、私の目標は統一された目的を持つことです:
beanutils とリフレクションを比較して、どちらがパフォーマンスを向上させるかを確認しています。私はそれがそれほど大きな違いを生まないことを知っています.
java - PropertyUtils を使用してマップ内のリストから要素を取得する方法は?
PropertyUtils の getProperty に使用されるインデックス付き表記を使用して、マップ値として含まれるリスト内の要素を取得しようとしています。以下に例を示します (ここでは一般的な構文を使用しています)。
たとえば、値「elem2」を取得したい場合、次を使用してそれを実行しようとしています:
しかし、うまくいかないようです。私は常にヌル値を取得します。これを行う別の方法はありますか。明確にするために、(もちろん明示的にキャストした後)できることはわかってgetProperty("aList").get(0)
いますが、上記のコードが機能する必要があるソリューションに取り組んでいます。
java - コレクションのsize()メソッドを呼び出すBeanUtils(セッターではありません)
ゲッターとセッターのクラスがあります。
ここで、Apache Commons PropertyUtilsを使用してオファーのsize()を取得したいと思いました。
これは基本的に次のように実行する必要があります。
しかし、PropertyUtilsを使用しても機能せず、次のようになります。
java.lang.NoSuchMethodException:クラス'クラスjava.util.LinkedHashSet'の不明なプロパティ'サイズ'
他のオブジェクトのすべてのゲッターとセッターにPropertyUtilsを使用すると、正常に機能します。
コレクションのsize()メソッドがgetXXXおよびsetXXXBeanの規則に準拠していないことが原因であると思われます。
PropertyUtils /またはBeanUtils(またはApache Commonsの他のもの)を使用してコレクションのsize()メソッドを呼び出す別の方法はありますか?
ありがとうクリストフ
jsf - BeanUtils.setProperty を JSP/JSF EL (式言語) に置き換える
BeanUtils.setProperty
入れ子になったプロパティやインデックス付きのプロパティを設定するために、JSP/JSF 式言語 (EL) を明示的に呼び出す方法はありますか?
たとえば、呼び出しBeanUtils.setProperty(object, "foo.bar", "value")
はobject.getFoo().setBar("value")
リフレクションを介した呼び出しになります。
代わりにELでそれを行う方法はありますか?
私がやろうとしていることは似ています<h:inputText value="#{object.foo.bar}">
が、「object.foo.bar」プロパティ式が動的である可能性があるUIを介するのではなく、バックエンドメソッドです。私はBeanUtils
動作することを知っていますが、やや古風に感じます。
java - BeanUtils.setPropertyがブール値に対して機能しませんか?
私はこの単純なBeanクラスを持っていて、BeanUtils.setPropertyを使用していくつかの値を設定しようとしています。問題は、Stringは問題なく機能するようですが、ブール値を設定しようとすると機能しません。フィールドをパブリックとして定義しようとしましたが、まだ機能していません。何か助けはありますか?なぜこれが機能しないのですか?
}