亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
广饶县| 册亨县| 娄底市| 潞西市| 克拉玛依市| 汪清县| 浦东新区| 务川| 防城港市| 茶陵县| 新巴尔虎右旗| 保靖县| 高淳县| 乐都县| 武胜县| 交口县| 恩施市| 通道| 泰来县| 拉萨市| 昭平县| 城市| 方山县| 绵阳市| 乌鲁木齐县| 安图县| 南昌市| 陆丰市| 卫辉市| 德保县| 五指山市| 廊坊市| 个旧市| 拉孜县| 桐梓县| 辰溪县| 赣榆县| 南宫市| 贵州省| 缙云县| 八宿县|