2012-01-27 51 views

回答

6

Java編程語言沒有一個構造來做到這一點。但是,您可以使用AOP(面向方面​​編程)包之一來執行此操作,例如AspectJ
尤其是這個線程可能會在如何實現這一良好的出發點:

http://dev.eclipse.org/mhonarc/lists/aspectj-users/msg09939.html

我個人的意見,然而,就是大部分時間AOP是一個可怕的矯枉過正。

更新:哦,here's使用Spring AOP的更簡單的方法,假設你可以使用Spring。通常,Spring比純AspectJ更容易使用。

+0

可怕的矯枉過正?你能解釋一下嗎? – 2012-01-27 04:03:54

+2

那麼,你基本上是通過完全在語言和源代碼之外的機制來修改程序的行爲。我對這樣的事情保持警惕。他們進行調試和閱讀源代碼(特別是不帶AOP的IDE)是一個更具挑戰性的過程。 – 2012-01-27 04:10:20

3

語言本身沒有通用的方法。不過,也有一些事情,可能會適合您的需要:

  1. 你的IDE可能有宏來生成一個println
  2. 如果你只在遇到一些層傾銷論點感興趣,並且所有的調用都是通過接口的方法,您可以使用Java代理。
  3. 你可以使用一些字節碼操作,無論是後編譯或類加載
  4. 讓別人做的#3居功甚偉過程中,學會自己AOP
相關問題