Home  >  Article  >  Java  >  [java] Usage of custom annotations-detailed tutorial

[java] Usage of custom annotations-detailed tutorial

php是最好的语言
php是最好的语言Original
2018-08-06 11:42:211797browse

Annotation

When using @interface to customize annotations, the java.lang.annotation.Annotation interface is automatically inherited, and other details are automatically completed by the compiler. When defining annotations, you cannot inherit other annotations or interfaces. @interface is used to declare an annotation, and each method actually declares a configuration parameter. The name of the method is the name of the parameter, and the return value type is the type of the parameter (the return value type can only be basic types, Class, String, or enum). You can declare the default value of a parameter through default.
                                                                                                                                                               . char, long, short)
                                                                    ‐                                                                                       been been been been 2. String type
                        been been been 3. Class been been typed
              been been 4. Enum type been been been typed
              been been been represented.
Directly upload the code:

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
 
/**
 * 定义一个注解
 */
@Target(ElementType.METHOD) // 这是一个对方法的注解,还可以是包、类、变量等很多东西
@Retention(RetentionPolicy.RUNTIME) // 保留时间,一般注解就是为了框架开发时代替配置文件使用,JVM运行时用反射取参数处理,所以一般都为RUNTIME类型
@Documented // 用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化
public @interface OneAnnotation {
 
	// 定义注解的参数,类型可以为基本类型以及String、Class、enum、数组等,default为默认值
	String parameter1() default "";
	int parameter2() default -1;

Use the annotated class

/**
 * 一个用到了自定义的注解的类
 */
public class OneClass {
	
	@OneAnnotation(parameter1="YES", parameter2=10000)
	public void oneMethod () {
	}

Extract the annotation parameters

import java.lang.reflect.Method;
 
 
public class TestThis {
 
	public static void main(String[] args) throws Exception {
		// 提取到被注解的方法Method,这里用到了反射的知识
		Method method = Class.forName("OneClass").getDeclaredMethod("oneMethod");
		// 从Method方法中通过方法getAnnotation获得我们设置的注解
		OneAnnotation oneAnnotation = method.getAnnotation(OneAnnotation.class);
		
		// 得到注解的俩参数
		System.out.println(oneAnnotation.parameter1());
		System.out.println(oneAnnotation.parameter2());
	}
Test result:

YES

10000

Related articles:

Java custom annotations

Java annotation tutorials and custom annotations

Related videos:

Comprehensive analysis of Java annotations

The above is the detailed content of [java] Usage of custom annotations-detailed tutorial. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn