2011-12-06 55 views

回答

3

我認爲該技術無法在任何環境中使用Java。

也許你可以使用AOP獲得類似的結果。

但是你可以做什麼,這看起來只限於Android。見Aspect-oriented programming in android。實際上,由於您不會編譯目標代碼(系統方法),因此編譯時編織(這似乎是您可以在Android上使用的所有東西)在這種情況下將毫無用處。我想這就是這個答案。

另外一個想法...我想你一定要做這個日誌記錄。但是如果你需要這個來調試一個問題,你可以用conditional breakpoint in Eclipse來完成。

條件表達式可以包含任意的Java代碼,並且可以 包含多個語句,使斷點條件 實現像跟蹤功能。例如,條件可以執行 打印語句,然後返回一個硬編碼值以永不暫停 (「System.out.println(...); return false;」)。

我不知道這是否適用於Android SDK中的方法。但它可以在Java SDK中使用方法。例如,下面是簡單的代碼:

System.err.println("foo"); 

我PrintStream.print做了一個條件斷點,這樣的:

System.err.println("hello: " + arg0); 
return false; 

和控制檯輸出時,在程序調試是這樣的:

hello: foo 
foo 

請注意,由於JDK不是用調試符號編譯的,因此我不能通過名稱引用方法參數,而是使用arg0..argn

+0

這是否也適用於android sdk的api方法? –