1

Javaリフレクションを使用してプロパティ記述子を再帰的に見つける方法はありますか?

Userクラスにprofileというフィールドがあり、それ自体がemail属性を持つ別のクラスであるシナリオを想像してみてください。

ユーザーオブジェクトを使用するには、profile.emailにアクセスする必要があるため、望ましいメソッドシグネチャは次のようになります。

public PropertyDescriptor findPropertyDescriptor(Class<?> clazz, String path)
{
    // Code!
}

そして、呼び出しは次のようになります。

findPropertyDescriptor(User.class, "profile.email")

また、以下のような呼び出しも可能であると考えています。

findPropertyDescriptor(User.class, "addresses[2].postCode")
4

1 に答える 1

0

誰も解決策を思い付いていないので、ここで私の質問に答えなければなりません。

Spring のおかげで、これはすでに実装されています。

public static <T> PropertyDescriptor getPropertyDescriptor(T rootObject, String path)
{
    BeanWrapperImpl wrapper = new BeanWrapperImpl(rootObject);
    return wrapper.getPropertyDescriptor(path);
}

質問に記載されている要件に加えて、マップもサポートしています。

于 2012-11-05T10:49:22.430 に答える