2011-10-11 73 views
0

是否可以記錄結果,該方法是否帶有註釋返回?
或特定的異常,是由方法拋出?註釋Java方法以記錄其結果和異常

無法找到方法m或類似的東西返回值,使用此電話:

for (Method m : Class.forName("AnnotatedBean").getMethods()) { 
    ... 
} 

AnnotatedBean是類,方法,通過自定義的註解。

回答

1

無法找到方法M或類似的東西返回值,使用此電話:

您需要invoke the method得到一個返回值回。

for (Method m : Class.forName("AnnotatedBean").getMethods()) { 
    Object returnValue = m.invoke(instance, args); 
} 
+0

matt,invoke()方法能減慢我的應用程序嗎?我很害怕。我的意思是,在這種情況下,方法在運行時運行了兩次嗎? – sergionni

+0

我不確定你的意思。 'Method.invoke()'調用實際的方法,如果你想將結果記錄在某種方面,這似乎是必要的。 –

3

是否有可能記錄結果,該方法返回與註釋?或 特定的異常,是由方法拋出的?

這似乎是關注點分離的教科書示例。看看AspectJ;生產方面在這種情況下可以很好地工作。

無法找到方法M或類似的東西返回值,使用 此調用:

現在我很困惑。如何返回值「未找到」?

+0

「返回值」 - 在這裏,我的意思是記錄的方法的結果 – sergionni

+0

我應該用AspectJ強制性的,而不是標準的方法?現在有什麼好的做法? – sergionni

+0

我不知道什麼是「強制性的,而不是標準的方式」。我相信生產方面對於關注點的分離是習慣性的。我的觀點基本上......無論什麼作品,都很容易實現,並且最不容易出錯。 –