共計(jì) 1037 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。
在 Java 中,可以使用 @interface
關(guān)鍵字來定義注解。自定義注解的語法如下:
public @interface CustomAnnotation {String value() default "";
int number() default 0;
}
在自定義注解中,可以定義多個(gè)成員變量,并為這些成員變量指定默認(rèn)值。成員變量的類型可以是基本類型、String、枚舉、Class、注解或它們的數(shù)組。
自定義注解可以通過元注解來為注解添加元數(shù)據(jù),常見的元注解有 @Retention
、@Target
、@Documented
、@Inherited
等。
下面是一個(gè)使用自定義注解的示例:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Log {String value();
}
public class MyClass {@Log("methodA")
public void methodA() {// 方法體
}
@Log("methodB")
public void methodB() {// 方法體
}
}
public class Main {public static void main(String[] args) {MyClass myClass = new MyClass();
Method[] methods = myClass.getClass().getMethods();
for (Method method : methods) {if (method.isAnnotationPresent(Log.class)) {Log annotation = method.getAnnotation(Log.class);
System.out.println(annotation.value());
}
}
}
}
在上述示例中,@Log
是一個(gè)自定義注解,用于標(biāo)記需要記錄日志的方法。MyClass
類中的 methodA()
和methodB()
方法都使用了 @Log
注解進(jìn)行標(biāo)記。
在 Main
類中,通過反射獲取 MyClass
類的所有方法,并使用 isAnnotationPresent()
方法判斷方法是否使用了 @Log
注解。如果使用了 @Log
注解,則通過 getAnnotation()
方法獲取注解的值。
運(yùn)行以上代碼,輸出結(jié)果為:
methodA
methodB
這說明 methodA()
和methodB()
方法都被成功地標(biāo)記為需要記錄日志的方法。
丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!
正文完