1
如何獲取Runtime for Java字段的值?採用這種結構運行時獲取字段值
:
編輯
ClassPathScanningCandidateComponentProvider scanner =
new ClassPathScanningCandidateComponentProvider(
false);
for (BeanDefinition bd : scanner
.findCandidateComponents("aspectlogging"))
{
Class myTarget = null;
try {
myTarget = Class.forName(bd.getBeanClassName());
}
catch (ClassNotFoundException e) {...}
for (Field f:myTarget.getDeclaredFields()){
try {
System.out.println("FIELD: " + f.get(myTarget));
} catch (IllegalArgumentException e) {...}
catch (IllegalAccessException e) {...}
} }
我有java.lang.IllegalAccessException
,
打電話時f.get(myTarget)
,
其中myTarget
是bean的實例在運行時和f
得到的是它的場。
當循環運行如下:
System.out.println("FIELD: " + f);
了字段名稱確定:
FIELD: private java.lang.String aspectlogging.TestableBean.name
FIELD: private java.lang.String aspectlogging.TestableBean.name
這是很奇怪的,那價值不能得到。
aix,請參閱我編輯的帖子,我仍然無法獲得field.value的字段bean哪裏得到了,但是當嘗試獲取值異常拋出。 – sergionni