中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

java中怎么自定義注解詳解

小億
97
2023-10-28 02:14:31
欄目: 編程語言

在Java中,可以使用@interface關鍵字來定義注解。自定義注解的語法如下:

public @interface CustomAnnotation {
    String value() default "";
    int number() default 0;
}

在自定義注解中,可以定義多個成員變量,并為這些成員變量指定默認值。成員變量的類型可以是基本類型、String、枚舉、Class、注解或它們的數組。

自定義注解可以通過元注解來為注解添加元數據,常見的元注解有@Retention@Target@Documented@Inherited等。

下面是一個使用自定義注解的示例:

@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是一個自定義注解,用于標記需要記錄日志的方法。MyClass類中的methodA()methodB()方法都使用了@Log注解進行標記。

Main類中,通過反射獲取MyClass類的所有方法,并使用isAnnotationPresent()方法判斷方法是否使用了@Log注解。如果使用了@Log注解,則通過getAnnotation()方法獲取注解的值。

運行以上代碼,輸出結果為:

methodA
methodB

這說明methodA()methodB()方法都被成功地標記為需要記錄日志的方法。

0
曲阳县| 杭锦旗| 伊宁市| 日喀则市| 延寿县| 阳城县| 呼玛县| 根河市| 玉龙| 喀什市| 得荣县| 偃师市| 塔河县| 高台县| 徐州市| 肥乡县| 罗甸县| 安平县| 巴东县| 河西区| 汾阳市| 偏关县| 元氏县| 鸡泽县| 石渠县| 德兴市| 芜湖市| 永安市| 迁西县| 金川县| 连云港市| 朝阳区| 大新县| 方山县| 永福县| 安图县| 汉阴县| 彰武县| 景泰县| 兴义市| 云林县|