技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
23
0
自我挑戰組
學習Java且應用
系列 第
23
篇
Java 注解(下)
16th鐵人賽
pinggg
2024-10-07 13:07:59
735 瀏覽
分享至
自定義注解
(1)除了內置的注解,Java還允許我們創建自定義注解。自定義注解本質上是一個接口,並且可以包含成員變量,這些成員變量必須有默認值或在使用時被指定。
(2)eg.
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
// 定義自定義注解
@Retention(RetentionPolicy.RUNTIME) // 指定該注解在運行時可見
@Target(ElementType.METHOD) // 指定該注解用於方法
public @interface MyAnnotation {
String value();
}
class TestAnnotation {
@MyAnnotation(value = "This is a custom annotation")
public void myMethod() {
System.out.println("Method with custom annotation");
}
}
注解詳解:
(1) @Retention:定義注解的生命週期。常見的值包括:
RetentionPolicy.SOURCE:注解僅存在於源代碼中,編譯後將被丟棄。
RetentionPolicy.CLASS:注解存在於字節碼中,但在運行時不可見。
RetentionPolicy.RUNTIME:注解在運行時仍然存在,可以通過反射獲取。
(2)@Target:定義注解可以應用的元素。常見的取值有:
ElementType.TYPE:類、接口或枚舉。
ElementType.METHOD:方法。
ElementType.FIELD:字段。
注解處理
自定義注解通常與反射結合使用,用於在運行時讀取和處理這些注解。
留言
追蹤
檢舉
上一篇
Java 注解(上)
下一篇
Java 文件輸入輸出(I/O)(上)
系列文
學習Java且應用
共
30
篇
目錄
RSS系列文
訂閱系列文
0
人訂閱
26
Java 文件輸入輸出(I/O)(下)
27
Java 應用一
28
Java 應用二
29
Java 應用三
30
總結
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
264
組
團體組數
9
組
累計文章數
2379
篇
最後報名日
9/15
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
18th鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
新人IT可以做甚麼
鼎新Workflow ERP AiGP 用筆電開啟速度超慢,有妙方嗎?
儲存裝置加密:如何使用VeraCrypt加密整個UFD,而非加密唯一的分割區?
outlook 報表的應用
企業GCP Antigravity可否使用Claude model?
熱門回答
新人IT可以做甚麼
熱門文章
Day 2|DGX Spark GB10 深度解析:128GB 統一記憶體到底解決了什麼問題
Day 3|網路與儲存規劃:10GbE 骨幹、雙 Spark 直連與 NFS 集中模型庫
Day 1 | AI Infra 到底是什麼?
Day 4|開箱之後 : DGX OS 初始環境建置與 CUDA、Docker 生態確認
關於工程師被主管同事下屬貼上負面標籤的邏輯解套
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}