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()); } }
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!