java resources是什么?讓我們一起來了解一下吧!
JAVA中的一個注解在某種意義上來說,只不過是一種特殊的注釋而已,若是沒有解析它的代碼,它可能連注釋都比不上。解析一個類或者方法的注解往往有兩種形式,一種是編譯期直接的掃描,一種是運行期反射。java注解是附加在代碼中的一些元信息,用于一些工具在編譯、運行時進行解析和使用,起到說明、配置的功能。
java resources是使用java注解的一個機制。
JDK 內置注解的定義:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public?@interface?Override?{ ? }
“元注解”是用于修飾注解的注解,通常用在注解的定義上,例如:
@Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public?@interface?Override?{ ? }
JAVA 中有以下四個『元注解』:
1.@Target:注解的作用目標
2.@Retention:注解的生命周期
3.@Documented:注解是否應當被包含在 JavaDoc 文檔中
4.@Inherited:是否允許子類繼承該注解
實戰演練,具體步驟如下所示:
package?com.java.api; ? import?java.lang.annotation.ElementType; import?java.lang.annotation.Retention; import?java.lang.annotation.RetentionPolicy; import?java.lang.annotation.Target; ? /**定義注解 ?*?@Target: ? 表示該注解可以用于什么地方,可能的ElementType參數有: CONSTRUCTOR:構造器的聲明 FIELD:域聲明(包括enum實例) LOCAL_VARIABLE:局部變量聲明 METHOD:方法聲明 PACKAGE:包聲明 PARAMETER:參數聲明 TYPE:類、接口(包括注解類型)或enum聲明 @Retention ? 表示需要在什么級別保存該注解信息??蛇x的RetentionPolicy參數包括: SOURCE:注解將被編譯器丟棄 CLASS:注解在class文件中可用,但會被VM丟棄 RUNTIME:VM將在運行期間保留注解,因此可以通過反射機制讀取注解的信息 ?* ?*?*/ public?class?UseCase{ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public?@interface?UseCases{ ????public?String?id(); ????public?String?description()?default?"no?description"; } } package?com.java.api; ? import?com.java.api.UseCase.UseCases; ? /** ?*?使用注解: ?* ?*?*/ public?class?PasswordUtils?{ ????@UseCases(id="47",description="Passwords?must?contain?at?least?one?numeric") ?????public?boolean?validatePassword(String?password)?{ ?????????return?(password.matches("\\w*\\d\\w*")); ?????} ? ?????@UseCases(id?="48") ?????public?String?encryptPassword(String?password)?{ ?????????return?new?StringBuilder(password).reverse().toString(); ?????} }
以上就是小編今天的分享了,希望可以幫助到大家。