日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 注解入门 简书_Java基础-注解

發布時間:2025/3/15 java 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 注解入门 简书_Java基础-注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注解是什么?

Java注解(Annotation)又稱為Java標注。可以從字面的意思理解它,其實就是一個標注。他可以根據定義作用于不同的地方。注解對他們注解的代碼沒有直接影響。注解是JDK 5中引入的標注注釋機制。

一句話概括:注解是元數據的一種形式,提供有關于程序但不屬于程序本身的數據。

注解的意義,如何使用注解。

注解就是對某個對象的一個標注。當我們對這個對象有一些特殊需求時,我們可以通過注解區分,來實現這些需求。舉個栗子,如butterknife?的view注入、arouter的輔助類生成飛、反射獲取特定信息然后操作等。

public @interface doClick{ } //?@interface? 創建一個注解

元注解:對注解類的注解。你可以這么簡單的理解。元注解有以下幾個注解:

@Target? 被元注解? 注解的注解的作用范圍

@Retention?被元注解? 注解的注解的存儲階段

@Inherited?被元注解? 注解的注解所作用的類是否可以被繼承(這里指的是注解能否被繼承過去,不是指的類是否可以被繼承)一般不使用

@Documented?被元注解? 注解的注解所作用的類為工具化文檔? 一般不使用。

下面主要描述@Target?和@Retention注解

@Target注解:被@Target注解的作用范圍

ElementType.ANNOTATION_TYPE 可以應用于注解類型。

ElementType.CONSTRUCTOR 可以應用于構造函數。

ElementType.FIELD 可以應用于字段或屬性。

ElementType.LOCAL_VARIABLE 可以應用于局部變量。

ElementType.METHOD 可以應用于方法級注解。

ElementType.PACKAGE 可以應用于包聲明。

ElementType.PARAMETER 可以應用于方法的參數。

ElementType.TYPE 可以應用于類的任何元素。

@Retention

RetentionPolicy.SOURCE - 標記的注解僅保留在源級別中,(編譯器語法檢查)

RetentionPolicy.CLASS - 標記的注解在編譯時由編譯器保留,但 Java 虛擬機(JVM)會忽略。(在編譯時可以通過注解實現一些特殊需求,比如輔助類、腳本、配置文件等。)

RetentionPolicy.RUNTIME - 標記的注解由 JVM 保留,因此運行時環境可以使用它。(反射獲取注解信息?進行特定的操作)

SOURCE 、CLASS?詳見其他框架解析使用.

RUNTIME?結合反射的簡單使用。

如有這么一個注解

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.FIELD)

public @interface ExtrasParams {Stringvalue()default "";}

@ExtrasParams

public class A extends Activity{

@ExtrasParams

private string name="123";

}

void main(Activity activity){

Class cls=activity.getClass();

Field[] declaredFields=cls.getDeclaredFields();

//循環Field[]?找到被注解的屬性或者字段。

for(Field field:declaredFields){

//判斷屬性是否被 ExtrasParams注解

if (field.isAnnotationPresent(ExtrasParams.class)) {

//獲取到ExtrasParams?注解? 此時field就是name

ExtrasParams extrasParams =? field.getAnnotation(ExtrasParams.class);

.....然后進行你需要的操作。

}

}

}

總結

以上是生活随笔為你收集整理的java 注解入门 简书_Java基础-注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。