<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
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 表示需要在什么级别保存该注解信息。可选的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*dw*")); } @UseCases(id ="48") public String encryptPassword(String password) { return new StringBuilder(password).reverse().toString(); }}