Heim >Java >javaLernprogramm >Fallcodeanalyse für Java-Annotationseinträge
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()); } }
Eine kurze Erklärung lautet wie folgt
Hier wird eine sehr einfache Annotationsklasse verwendet, die die beiden grundlegendsten Meta-Annotationen verwendet (die Bedeutung von Meta-Annotationen ist: ändert die Attribute der Klasse bis zur Laufzeit beibehalten).
Dann können Sie Anmerkungen ganz einfach verwenden, genau wie im Folgenden.
@MyLoveForYou(love="Meine Liebe ist auch mein Herz") <code>@MyLoveForYou(love="吾爱亦吾心")
这里强调以下,单纯的使用注解是没有任何用的,注解需要借助专门的工具处理,这里定义一个简单的处理注解的类(这个类可能需要一点反射的知识,但是也不要紧,如果你只想知道注解的作用,也可以不用管它,记住用法就行了):ProcessAnnotation
Ich betone Folgendes: Anmerkungen müssen nicht mit speziellen Werkzeugen verarbeitet werden einfache Definition Eine Klasse zum Verarbeiten von Anmerkungen (Diese Klasse erfordert möglicherweise ein wenig Reflexionswissen, aber das spielt keine Rolle. Wenn Sie nur die Funktion von Anmerkungen wissen möchten, können Sie es in Ruhe lassen und sich einfach an die Verwendung erinnern): ProcessAnnotation
Verwendung: Diese Klasse macht eine Sache: Sie weist Liebe
den Wert zu als
Das obige ist der detaillierte Inhalt vonFallcodeanalyse für Java-Annotationseinträge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!