在您定義Annotation型態後並使用於程式碼上時,預設上父類別中的Annotation並不會被繼承至子
類別中,您可以在定義
Annotation時加上java.lang.annotation.Inherited的Annotation,這讓您定義的Annotation型
別被繼承下來。
例如:
package onlyfun.caterpillar;
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Inherited;
@Retention(RetentionPolicy.RUNTIME) @Inherited public @interface Debug { String value(); String name(); }
在下面這個程式中使用它:
package onlyfun.caterpillar;
public class SomeObject { @Debug( value = "unit", name = "debug1" ) public void doSomething() { // .... } }
如果您有一個類別繼承自SomeObject,則理想上@Debug也會被繼承下來,不過事實上Inherited在Sun JDK
5.0中還沒有作用。 |