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

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java注解類型的語法標準是什么

發布時間:2022-01-07 09:42:45 來源:億速云 閱讀:147 作者:iii 欄目:編程語言

這篇文章主要介紹“Java注解類型的語法標準是什么”,在日常操作中,相信很多人在Java注解類型的語法標準是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Java注解類型的語法標準是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

前言

XML作為配置文件受到了大部分程序員的喜愛,但也有人會偏愛使用注解,其實個人覺得選擇什么并不是重點,重點是要了解每一個技術誕生的本質;XML作為配置文件和代碼是“松耦合”的代碼描述,但是當XML配置文件過多時難以管理,同時IDE無法對XML配置文件的正確性進行校驗,增加測試難度;而注解則是“緊耦合”的代碼描述,它的目的是為了讓應用更易于擴展的同時做到“零”配置。

一、什么是注解(Annotation)

注解即標注,是代碼中的元數據(元數據:描述數據的數據),通過使用注解使得程序開發人員可以在不改變原有邏輯的情況下,在源文件中嵌入一些補充信息。請看以下代碼片段:

Java注解類型的語法標準是什么

對于初學者而言,其實經常會看到類似代碼,心里會想@Override是什么鬼?其實它就是注解,在toString()方法上加入@Override,表示該注解下面的toString()方法必須重構父類方法。

看到這里我想有人就會認為接下來我會和大家介紹各種各樣的注解了?!我偏不!

二、注解類型的語法標準

注解是Java中一種特殊的類型,接下來我們來看一下如何設計一個注解類型。

1、語法標準:

public   @interface   注解類型名稱

{

[   數據類型    變量名 ()    [   default  初始值   ];   ]

}

注:

1)"[   ]"中的內容可有可無,如果注解內部為空,則表示當前注解為標識注解。

2)注解中智能包含變量,不能包含方法。

3)注解是代碼里的特殊標記,不可以單獨使用,需要配合類或接口一起使用。

4)注解類型可以被用來為程序元素設置元數據(程序元素:類、方法、成員變量等)。

2、案例:設計注解類型Testable,由該注解標識的方法為可測試方法。該注解內部為空,表示該注解為標識注解。

public  @interface  Testable

{

}

public class Test

{

@Testable

public void info()

{

System.out.println(“我是info方法”);

}

public void info1()

{

System.out.println(“我是info1方法”);

}

}

該類中加入@Testable注解,表示info方法為可被執行到的方法,僅僅是描述該方法是可被執行的方法而已,并不會有任何動態交互能力,如果想要達成該注解的作用必須要編寫配套的Java應用程序,具體代碼可參考如下代碼。大家可以思考,如果想要解析一個類的內部結構,我們可以通過什么技術來實現呢?答案是:反射機制(接下來這一段有關于反射機制的相關內容不清楚的朋友們,按照下面代碼進行調試,具體反射機制的相關知識稍后會發布)。

在java.lang.reflect包中常見的具有反射功能的工具類:Method(方法類)、Field(字段類)、Constructor(構造方法類)等。以上這些工具類擴充了讀取運行時注解的能力,即實現java.lang.annotation.AnnotatedElement接口;該接口是所有程序元素的父接口,該接口中提供了用于獲取注解信息的相關方法。

  • getAnnotation(Class<T> annotationClass):返回該程序元素上的、指定類型的注解,如果該類型的注解不存在,則返回null

  • Annotation []  getAnnotations():返回該程序元素上存在的所有注解。

  • Annotation是所有注解的父接口,默認情況下任何一個接口類型都實現該接口。

  • boolean isAnnotationPresent(Class<? Extends Annotation> annotationClass):判斷該程序元素上是否包含指定類型的注解,存在則返回true,否則返回false。

代碼參考:解析Test類,并執行帶有@Testable標識的方法。

import java.lang.reflect.Method;

public class UseTest

{

public static void main(String[] args)throws Exception

{

Class c=Class.forName(“Test”);

Object o=c.newInstance();

Method[] me=c.getDeclaredMethods();

for(Method temp:me)

{

if(temp.isAnnotationPresent(Testable.class))

temp.invoke(o,new Object[0]);

}

}

}

大家可以運行程序看一下效果

到此,關于“Java注解類型的語法標準是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江安县| 陈巴尔虎旗| 怀仁县| 阳高县| 泰兴市| 皮山县| 株洲市| 高唐县| 呼伦贝尔市| 四子王旗| 松桃| 县级市| 商水县| 手游| 淮北市| 敦煌市| 镇赉县| 温宿县| 中阳县| 穆棱市| 江都市| 栾川县| 长垣县| 孟津县| 青岛市| 开封县| 榆树市| 尚义县| 乌兰浩特市| 康平县| 探索| 新竹市| 桃江县| 望城县| 高邮市| 阿巴嘎旗| 海晏县| 无棣县| 达日县| 广昌县| 甘洛县|