Rumah > Java > javaTutorial > Analisis kod kes masukan anotasi Java

Analisis kod kes masukan anotasi Java

PHPz
Lepaskan: 2023-04-24 17:13:08
ke hadapan
1230 orang telah melayarinya

Cakap itu murah, tunjukkan kodnya.

Anotasi definisi

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();
}
Salin selepas log masuk

Kelas definisi

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 + "]";
	}
}
Salin selepas log masuk

Proses kelas anotasi

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;
	}
}
Salin selepas log masuk

Ujian

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());
	}
}
Salin selepas log masuk

Keputusan ujian

Analisis kod kes masukan anotasi Java

Penjelasan ringkas di bawah

Kelas anotasi yang sangat mudah digunakan di sini, menggunakan dua meta-anotasi yang paling asas (maksud meta-anotasi ialah : mengubah suai atribut kelas dikekalkan sehingga masa jalan ).
Kemudian anda boleh menggunakan anotasi Penggunaan ringkas sebenarnya sangat mudah, seperti berikut.

@MyLoveForYou(love="吾爱亦吾心")

Di sini ditekankan bahawa hanya menggunakan anotasi tidak perlu diproses dengan bantuan alat khusus Berikut ialah kelas mudah untuk memproses anotasi ( Kelas ini mungkin memerlukan sedikit pengetahuan tentang refleksi, tetapi tidak mengapa jika anda hanya ingin mengetahui fungsi anotasi, anda boleh biarkan sahaja dan ingat penggunaannya ): ProcessAnnotation
Penggunaan: Kelas ini melakukan satu perkara, tetapkan nilai kepada cinta sebagai Cinta saya adalah hati saya. Langkah terakhir ialah menguji Kaedah toString() ditulis semula di sini untuk menjadikannya kelihatan lebih intuitif.

Atas ialah kandungan terperinci Analisis kod kes masukan anotasi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan