这篇文章主要介绍“Java注解入门案例代码分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java注解入门案例代码分析”文章能帮助大家解决问题。
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() 方法。@Overridepublic 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());}}
测试结果
简单说明以下
这里就使用了一个非常简单的注解类,使用了两个最基础的元注解(元注解的意思就是: 修饰的是类的属性 保留到运行期)。
然后就可以使用注解了,简单的使用其实很简单,就像下面这样就像了。
@MyLoveForYou(love="吾爱亦吾心")
这里强调以下,单纯的使用注解是没有任何用的,注解需要借助专门的工具处理,这里定义一个简单的处理注解的类(这个类可能需要一点反射的知识,但是也不要紧,如果你只想知道注解的作用,也可以不用管它,记住用法就行了):ProcessAnnotation
用法:这个类就是干一件事,给 love 赋值为 吾爱亦吾心。
最后就是测试了,这里重写了toString() 方法,看起来更加直观一点。
关于“Java注解入门案例代码分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网行业资讯频道,小编每天都会为大家更新不同的知识点。