主题
我选择的主题是:"我的名片"
引言
首先,我想自我介绍不管是在职场还是生活中都是非常重要,所以我想选择"我的名片"这个主题来用代码实现,由于我大学学习的是Java语言,所以我将使用Java语言来实现,并将我的思路一一讲解给大家,如有错误请大家一定帮我指出!
实现思路
我将使用Java中非常重要的特性注解来实现"我的名片"代码,不管是在学习JavaSE的过程中还是学习JavaEE高级框架的过程中,注解总是少不了,比如常见的:@Override这是我们在学习JavaSE方法的时候常见的,它标注在方法表示此方法被重写、@Deprecated这个注解也是比较常见,比如我们在翻看JDK源码时会发现有些类和方法会使用这个注解进行标注,被它标注的方法和类都表示这个类或方法是被弃用的,不推荐使用的类或方法等等这些...
具体实现
1.使用自定义注解的方式,完成"我的名片"的注解,并给注解添加value用来标识,并给value属性赋上默认值,自定义注解有几个注意的点,@Target注解是表示这个类能标注在哪些位置,比如我就把"我的名片"设置了只能标识在类和方法上,@Target注解是每个自定义注解必不可少的,@Retention注解表示希望这个注解可以被反射,
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 自定义注解
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
public @interface myCard {
String value() default "Hello!";
}
2.编写测试类加上"我的名片"注解,使用Java中重要的特性反射获取当前测试类的字节码文件后获取类上注解的value属性值
/**
* 我的名片
*/
@myCard("Hello!我是吕崇其,我今年19岁,目前大二。")
public class Demo {
public static void main(String[] args) throws ClassNotFoundException {
//获取类的Class对象
Class c = Class.forName("annotation.Demo");
//获取类上的注解
myCard m = (myCard) c.getAnnotation(myCard.class);
//获取注解上的值
System.out.println(m.value());
}
}
总结
1.通过这样一个案例可以初步认识Java注解
2.学会如何自定义注解
3.学会通过反射机制获取注解中的值