“自定义注解”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
第29行: 第29行:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== 复杂一点的 Annotation ===
+
=== 带成员变量的 Annotation ===
 
MyTag.java<syntaxhighlight lang="java">
 
MyTag.java<syntaxhighlight lang="java">
 
public @interface MyTag {
 
public @interface MyTag {
第49行: 第49行:
 
 
 
}
 
}
 +
</syntaxhighlight>
 +
 +
=== 成员变量有默认值的 Annotation ===
 +
<syntaxhighlight lang="java">
 +
public @interface MyTag1 {
 +
 +
// 定义了两个成员变量的 Annotation
 +
// 使用 default 为两个成员变量指定初始值
 +
String name() default "yeehu";
 +
 +
int age() default 32;
 +
 +
}
 +
 
</syntaxhighlight>
 
</syntaxhighlight>

2024年7月10日 (三) 05:11的版本

简单的 Annotaion

Test.java

/**
 * 定义一个简单的 Annotation 类型
 */
public @interface Test {

}

定义了该 Annotation 之后,就可以在程序的任何地方使用该 Annotation, MyClass.java

// 使用 @Test 修饰类定义
@Test
public class MyClass {

}

默认情况下,Annotation 可用于修饰任何程序元素,包括类、接口、方法等, MyClass1.java

public class MyClass1 {

	// 使用 @Test Annotation 修饰方法
	@Test
	public void info() {
		
	}
	
}

带成员变量的 Annotation

MyTag.java

public @interface MyTag {

	// 定义了两个成员变量的 Annotation
	String name();
	
	int age();
	
}

Test1.java

public class Test1 {

	// 使用带成员变量的 Annotation 时,需要为成员变量赋值
	@MyTag(name="xx", age=6)
	public void info() {
		
	}
	
}

成员变量有默认值的 Annotation

public @interface MyTag1 {

	// 定义了两个成员变量的 Annotation
	// 使用 default 为两个成员变量指定初始值 
	String name() default "yeehu";
	
	int age() default 32;
	
}