摘要:注解概念注解也被成為元數據為我們在代碼中添加信息提供了一種形式化的方式,使我們可以在稍后的某個時刻更容易的使用這些數據。
注解 概念
注解(也被成為元數據)為我們在代碼中添加信息提供了一種形式化的方式,使我們可以在稍后的某個時刻更容易的使用這些數據。
注解是 Java 5 所引入的眾多語言變化之一:
注解使得我們可以以編譯器驗證的格式存儲程序的額外信息
注解可以生成描述符文件,甚至是新的類定義,并且有助于減輕編寫“樣板”代碼的負擔
通過使用注解,你可以將元數據保存在 Java 源代碼中
簡單易讀的代碼,編譯器類型檢查,使用 annotation API 為自己的注解構造處理工具
Java 5 引入了前三種定義在 java.lang 包中的注解:
@Override:表示當前的方法定義將覆蓋基類的方法。如果你不小心拼寫錯誤,或者方法簽名被錯誤拼寫的時候,編譯器就會發出錯誤提示。
@Deprecated:如果使用該注解的元素被調用,編譯器就會發出警告信息。
@SuppressWarnings:關閉不當的編譯器警告信息。
@SafeVarargs:在 Java 7 中加入用于禁止對具有泛型varargs參數的方法或構造函數的調用方發出警告。
@FunctionalInterface:Java 8 中加入用于表示類型聲明為函數式接口
基本語法 定義注解下面是注解的定義。注解的定義看起來很像接口的定義。事實上,它們和其他 Java 接口一樣,也會被編譯成 class 文件
package com.abc.annotation; import java.lang.annotation.*; @Target({ElementType.TYPE,ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface PermInfo { String pval() default ""; String value() default ""; }
其中 @Target 、Documented和 @Retention為元注解,Java語言目前有 5 種標準注解,以及 5 種元注解:
注解 | 解釋 |
---|---|
@Target | 表示注解可以用于哪些地方。可能的 ElementType 參數包括: CONSTRUCTOR:構造器的聲明 FIELD:字段聲明(包括 enum 實例) LOCAL_VARIABLE:局部變量聲明 METHOD:方法聲明 PACKAGE:包聲明 PARAMETER:參數聲明 TYPE:類、接口(包括注解類型)或者 enum 聲明 |
@Retention | 表示注解信息保存的時長。可選的 RetentionPolicy 參數包括: SOURCE:注解將被編譯器丟棄 CLASS:注解在 class 文件中可用,但是會被 VM 丟棄。 RUNTIME:VM 將在運行期也保留注解,因此可以通過反射機制讀取注解的信息 |
@Documented | 將此注解保存在 Javadoc 中 |
@Interited | 允許子類繼承父類的注解 |
@Repeatable | 允許一個注解可以被使用一次或者多次(Java 8) |
注解通常會包含一些表示特定值的元素。當分析處理注解的時候,程序或工具可以利用這些值。注解的元素看起來就像接口的方法,但是可以為其指定默認值。
如果不包含任何元素,那么該注解稱為標記注解(marker annotation)
@PermInfo注解的屬性與方法定義類似。注解的元素在使用時表現為 名-值 對的形式,并且需要放置在 @PermInfo 聲明之后的括號內
@PermInfo(value = "測試模塊模塊", pval = "a:test") @RestController @RequestMapping("/test") public class TestController { // 由于ShiroConfig中配置了該路徑可以匿名訪問,所以這接口不需要登錄就能訪問 @GetMapping("/hello") public String hello() { return "hello spring boot"; } }注解處理器
Java 拓展了反射機制的 API 用于幫助你創造這類工具。同時他還提供了 javac 編譯器鉤子在編譯時使用注解。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75628.html
摘要:楊充一定時間內該點擊事件只能執行一次用來修飾這是一個什么類型的注解。楊充自定義編譯器獲取遍歷,并生成代碼配置文件文件配置的作用是向系統注冊自定義注解處理器,執行編譯時使用進行處理。 目錄介紹 01.創建項目步驟 1.1 項目搭建 1.2 項目功能 02.自定義注解 03.創建Processor 04.compiler配置文件 05.編譯jar 06.如何使用 07.編譯生成代...
摘要:使用實現功能運行期注解案例使用簡單的注解,便可以設置布局,等效于使用實現路由綜合型案例比較全面的介紹從零起步,一步一步封裝簡易的路由開源庫。申明注解用的就是。返回值表示這個注解里可以存放什么類型值。 YCApt關于apt方案實踐與總結 目錄介紹 00.注解系列博客匯總 01.什么是apt 02.annotationProcessor和apt區別 03.項目目錄結構 04.該案例作用 ...
摘要:核心注解講解最大的特點是無需配置文件,能自動掃描包路徑裝載并注入對象,并能做到根據下的包自動配置。所以最核心的個注解就是這是添加的一個注解,用來代替配置文件,所有這個配置文件里面能做到的事情都可以通過這個注解所在類來進行注冊。 最近面試一些 Java 開發者,他們其中有些在公司實際用過 Spring Boot, 有些是自己興趣愛好在業余自己學習過。然而,當我問他們 Spring Boo...
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
閱讀 1209·2021-11-23 09:51
閱讀 1986·2021-10-08 10:05
閱讀 2344·2019-08-30 15:56
閱讀 1905·2019-08-30 15:55
閱讀 2643·2019-08-30 15:55
閱讀 2494·2019-08-30 13:53
閱讀 3504·2019-08-30 12:52
閱讀 1255·2019-08-29 10:57