ホームページ >Java >&#&チュートリアル >Java アノテーション エントリのケース コード分析
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()); } }
#簡単な説明は次のとおりです。
ここでは、2 つの最も基本的なメタ アノテーションを使用して、非常に単純なアノテーション クラスが使用されています (メタ アノテーションの意味は次のとおりです)。クラス プロパティ は実行時 ) まで保持されます。 次に、アノテーションを使用します。単純な使用方法は、次のように非常に簡単です。
@MyLoveForYou(love="私の愛も私の心です")
このクラスには、リフレクションに関する少しの知識が必要になる可能性がありますが、問題ではありません。アノテーションの機能を知りたいだけの場合は、そのままにしておいて、覚えておくだけで問題ありません)使用法): ProcessAnnotation
Usage: このクラスは 1 つのことを行い、値を love に 我愛也我として割り当てます。心。 最後のステップはテストです。ここでは toString() メソッドが書き直されており、より直感的に見えます。
以上がJava アノテーション エントリのケース コード分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。