2

POJOのプロパティ名の配列(またはリスト)を取得したい。commons-beanutilを試しBeanUtils.describe(obj)ましたが、オブジェクトインスタンスが必要です。しかし、パブリックの引数なしのコンストラクターがなく、そのクラスしかない場合はどうなりますか。clazz.newInstance()オブジェクトの生成には使用できません。

どうすれば解決できますか?クラスを掘り下げてプロパティ名を渡すことができるライブラリはありますか?

(リフレクションを使用してクラス構造を手動で解析できることはわかっていますが、便利なライブラリを探しています)

ありがとう。

4

2 に答える 2

4

Javaには、リフレクションutilsが組み込まれています。これを使用できます。クラスのjavadocを見てください。

たとえば、リフレクションDemo.class.getMethods();を使用して、呼び出されたクラスのすべてのゲッターメソッドを取得しますDemo(インスタンス化せずに)。

List<Method> allGetterMethodsOfClassDemo() = new ArrayList<Method>();
for(Method method : Demo.class.getMethods()){
  if(method.getName().startsWith("get") || method.getName().startsWith("is")) {
    allGetterMethodsOfClassDemo.add(method);
  }
}
于 2010-12-15T07:41:36.957 に答える
4

私はそれ(またはjava.beans、そのことについては、で何か)を使用したjava.beans.Introspector.getBeanInfo(Class)ことはありませんが、あなたが探しているものかもしれません。

于 2010-12-15T07:55:51.350 に答える