これは、正確なタイプを知らずにオブジェクトの Bean プロパティにアクセスする適切な方法ですか? (または、これを行う組み込みメソッドは既にありますか?) プロパティが存在しないか利用できない場合にスローする適切な例外はありますか?
static private Object getBeanPropertyValue(Object bean, String propertyName) {
// access a no-arg method through reflection
// following bean naming conventions
try {
Method m = bean.getClass().getMethod(
"get"
+propertyName.substring(0,1).toUpperCase()
+propertyName.substring(1)
, null);
return m.invoke(bean);
}
catch (SecurityException e) {
// (gulp) -- swallow exception and move on
}
catch (NoSuchMethodException e) {
// (gulp) -- swallow exception and move on
}
catch (IllegalArgumentException e) {
// (gulp) -- swallow exception and move on
}
catch (IllegalAccessException e) {
// (gulp) -- swallow exception and move on
}
catch (InvocationTargetException e) {
// (gulp) -- swallow exception and move on
}
return null; // it would be better to throw an exception, wouldn't it?
}