4
按照doc併爲此answer我應該有「越權」(或類似的東西),在下面的代碼:爲什麼我收到的註釋空數組這裏
import java.lang.reflect.*;
import java.util.*;
import static java.lang.System.out;
class Test {
@Override
public String toString() {
return "";
}
public static void main(String ... args) {
for(Method m : Test.class.getDeclaredMethods()) {
out.println(m.getName() + " " + Arrays.toString(m.getDeclaredAnnotations()));
}
}
}
但是,我得到一個空陣列。
$ java Test
main []
toString []
我在想什麼?
我實際上正在嘗試'@棄用',並且工作。那麼,什麼時候只爲編譯器識別出「Retention = SOURCE」呢? – OscarRyz
@OscarRyz:'@ Deprecated'具有'Retention = RUNTIME',* *可以使用反射。這些東西都在javadoc中(http://download.oracle.com/javase/6/docs/api/java/lang/Deprecated.html)。 – skaffman
是的,我可以從你的答案中推論出來。我怎樣才能訪問這些信息,我想我可以在編譯階段插入* something *,你能指出我的方向嗎? – OscarRyz