“Java”你知道我們常用的Java註解,是怎麼實現的嗎?註解相當於是標記,它與註釋的差別在於註解的內容可以可以使用,下面,讓我們認識Java的註解。
要使用註解,我們可以分成三個部分,分別是:註解本身、註解使用類別、註解處理類,如下圖:圖片描述
註解的結構
下面,我們來看看程式碼怎麼操作吧
第一步:新註解
新建兩個註解,分別是PlayerName與PlayerInfor
PlayerName:
import java.lang.annotation.Documented;
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.FIELD)
@Documented
public @interface PlayerName {
String value() default "";
}
PlayerInfor:
import java .lang.annotation.Documented;
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.FIELD)
@ Documented
public @interface PlayerInfor {
public enum Color{Blue,Red,White};
Color color() default Color.Blue;
int number() default 7;
int age();
String club() default "曼徹斯特聯隊";
}
#第二步驟:定義實體類,並使用剛新建的註解
新建一個FootballPlayer類別
FootballPlayer:
public class FootballPlayer {
//將PlayerName註解綁定在實體類別的name屬性中
@PlayerName("魯尼")
public String name;
//將PlayerInfor註解綁定在實體類別的playInfo屬性中
@PlayerInfor(color=Color.Red,number=10,age=30)
public String playInfo;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
# public String getPlayInfo() {
return playInfo;
}
public void setPlayInfo(String playInfo) {
this.playInfo = playInfo;
}
}
第三步:定義註解處理類,處理實體類別的註解
新建AnnoUtil工具類別
AnnoUtil:
import java.lang.reflect.Field;
public class AnnoUtil {
public static void getPlayerInfo(Class> clazz){
#/#/
取得實體類別的所有屬性/
Field[] fields = clazz.getFields();
//循環抽取實體類別屬性中的註解
# for(Field field:fields){
//匹配註解
if(field.isAnnotationPresent(PlayerName.class)){
##//取得註解PlayerName name = field.getAnnotation(PlayerName.class);//使用註解System.out.println("運動員名字:" name.value());}else if(field.isAnnotationPresent(PlayerInfor.class)){//取得註解PlayerInfor infor = field.getAnnotation(PlayerInfor.class);//使用註解System.out.println("所屬球隊:" infor.club() ",代表顏色:" infor.color() ",編號: " infor.number() ",年齡:" infor.age());}#}}}
第四步:呼叫處理類別的處理方法
附:
我剛整理了一套2018最新的0基礎入門和進階教程,無私分享,加Java學習qun :678-241-563 即可獲取,內附:開發工具和安裝包,以及系統學習路線圖。
相關文章:
相關影片:
以上是對於Java中常使用的註解,你都是怎麼實現的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!