Java注解入门案例代码分析
Talkischeap,showmethecode.定义注解importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public@inte
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() 方法。
@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());
}
}测试结果

简单说明以下
这里就使用了一个非常简单的注解类,使用了两个最基础的元注解(元注解的意思就是: 修饰的是类的属性 保留到运行期)。
然后就可以使用注解了,简单的使用其实很简单,就像下面这样就像了。
@MyLoveForYou(love="吾爱亦吾心")
这里强调以下,单纯的使用注解是没有任何用的,注解需要借助专门的工具处理,这里定义一个简单的处理注解的类(这个类可能需要一点反射的知识,但是也不要紧,如果你只想知道注解的作用,也可以不用管它,记住用法就行了):ProcessAnnotation
用法:这个类就是干一件事,给 love 赋值为 吾爱亦吾心。
最后就是测试了,这里重写了toString() 方法,看起来更加直观一点。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















