自定義Annotation
本文中提供一個自定義註解的例子,只寫了一個用於修飾(類,介面,列舉)的註解,大家可以舉一反三。直接看例子,共有3個類。
Info.java
註解類
/**
* info註解,用於顯示描述資訊
*/
//RetentionPolicy.RUNTIME - 會保留在class檔案和vm中
@Retention(RetentionPolicy.RUNTIME)
// ElementType.TYPE - 類,介面,列舉的宣告
@Target(ElementType.TYPE)
public @interface Info {
String info();
}
Phone.java
使用註解的類,用於演示
/**
* 手機類,用於演示註解使用方法
*/
@Info(info = "我是iPhone7")
public class Phone {
}
Main.java
用於解析註解和執行
package com.rockyguo;
/**
* 解析註解,並顯示
*/
public class Main {
public static void main(String[] args) {
try {
Class phoneClass = Class.forName("com.rockyguo.Phone");
if(phoneClass.isAnnotationPresent(Info.class)){
Info info = (Info)phoneClass.getAnnotation(Info.class);
System.out.println(info.info());
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
DEMO
相關文章
- Spring 定時器的使用—Xml、Annotation、自定義Spring定時器XML
- Spring 定時器的使用---Xml、Annotation、自定義Spring定時器XML
- springboot+redis+Interceptor+自定義annotation實現介面自動冪等Spring BootRedis
- 【天星技術團隊】從自定義Annotation、APT、JavaPoet再到Butterknife原理APTJava
- Annotation
- android自定義view(自定義數字鍵盤)AndroidView
- netty自定義Decoder用於自定義協議Netty協議
- 自定義 tabBartabBar
- 自定義 GitGit
- tailwind自定義AI
- 自定義元件元件
- 自定義表格
- 自定義 Anaconda
- 自定義ClassLoader
- 自定義QTimeEditQT
- 自定義LinkedList
- 自定義useState
- 自定義VIEWView
- 自定義SnackBar
- 自定義_ajax
- vue自定義全域性元件(或自定義外掛)Vue元件
- Android 自定義View:深入理解自定義屬性(七)AndroidView
- 4. 自定義控制元件(4) --- 自定義屬性控制元件
- 自定義JSON名JSON
- Python自定義排序Python排序
- 自定義ORM框架ORM框架
- 自定義異常
- uniapp 自定義 pickerAPP
- 自定義目錄
- SpringBoot自定義StarterSpring Boot
- 自定義註解
- 自定義 Artisan 命令
- 自定義 Word 模板
- 自定義型別型別
- Gradle 自定義 pluginGradlePlugin
- 自定義Spring ShellSpring
- 自定義圓環
- Flutter 自定義 TabBarFluttertabBar
- 自定義列舉