首頁  >  文章  >  Java  >  Java註解入門案例程式碼分析

Java註解入門案例程式碼分析

PHPz
PHPz轉載
2023-04-24 17:13:081191瀏覽

Talk is cheap, show me the code.

定義註解

#
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyLoveForYou {
	String love();
}

定義類別

public class Love {
	@MyLoveForYou(love="吾爱亦吾心")
	private String love;
	public String getLove() {
		return love;
	}
	public void setLove(String love) {
		this.love = love;
	}
	//重写 toString() 方法。
	@Override
	public String toString() {
		return "Love [love=" + love + "]";
	}
}

#處理註解類別

import java.lang.reflect.Field;

public class ProcessAnnotation {
	private static Love love;
	
	//创建 love 实例
	public static Love getLove(){
		Class<?> clazz = Love.class;
		try {
			Field field = clazz.getDeclaredField("love");
			field.setAccessible(true);
			MyLoveForYou  myLoveForYou = field.getAnnotation(MyLoveForYou.class);
			String fieldLove = myLoveForYou.love();
			try {
				love = (Love)clazz.newInstance();
			} catch (InstantiationException | IllegalAccessException e) {
				e.printStackTrace();
			}
			love.setLove(fieldLove);
		} catch (NoSuchFieldException | SecurityException e) {
			e.printStackTrace();
		}
		return love;
	}
}

測試

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class Test {
	public static void main(String[] args) throws 
	ClassNotFoundException, NoSuchMethodException, 
	SecurityException, InstantiationException, 
	IllegalAccessException, IllegalArgumentException, InvocationTargetException {
	//异常有点多,但是不用担心,其实只有三行代码。
		Love love = ProcessAnnotation.getLove();
		System.out.println(love.getLove());
		System.out.println(love.toString());
	}
}

測試結果

Java註解入門案例程式碼分析


##簡單說明以下

這裡就使用了一個非常簡單的註解類,使用了兩個最基礎的元註解(元註解的意思就是: 修飾的是類的屬性 保留到運行期)。
然後就可以使用註解了,簡單的使用其實很簡單,就像下面這樣就像了。 @MyLoveForYou(love="吾愛亦吾心")#這裡強調以下,單純的使用註解是沒有任何用的,註解需要藉助專門的工具處理,這裡定義一個簡單的處理註解的類別(
這個類別可能需要一點反射的知識,但是也不要緊,如果你只想知道註解的作用,也可以不用管它,記住用法就行了

):###ProcessAnnotation#########用法###:這個類別就是做一件事,給###love### 賦值為###吾愛亦吾心## #。 ###最後就是測試了,這裡重寫了toString() 方法,看起來更直覺一點。 ###

以上是Java註解入門案例程式碼分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除