java中的注解
1。该如何来理解注解?
乔布斯重新定义了手机,罗太君重新定义了傻逼。自然而然的就给罗太君贴上了傻逼的标签,不熟悉老罗的人,不知道他当教师,办博客,做手机,殊不知老罗还有“理想主义者”,“单口相声演员”,“段子手”等等标签
老罗还是那个老罗,只是人们对于他的不同认识给他贴上了不同的标签
我们可以简单概况一下,标签是对事物行为某些角度的评价与解释
想像代码具有生命,注解就是对于代码中某些鲜活个体的贴上去的一张标签。简化来讲,注解如同一张标签。
注解使用@interface进行修饰
定义一个注解
代码语言:javascript复制/**
* 定义了一个注解
*/
@Target(ElementType.METHOD) /*元注解,METHOD表明在方法上有效*/
@Retention(RetentionPolicy.RUNTIME) /*元注解,RUNTIME表明运行时有效*/
public @interface testAnnotation {
}
定义一个类 里面有两个方法,一个打上注解一个不打
代码语言:javascript复制/**
* 测试类2定义两个方法打上自定义的注解看看各自的执行情况
*/
public class Test2 {
@testAnnotation
public void fun(){
System.out.println("层楼终究误少年");
}
public void fun2(){
System.out.println("自由早晚乱余生");
}
}
编写测试类,看刚刚两个方法的执行情况
代码语言:javascript复制public class Test {
public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
Test2 test = new Test2();
//通过反射获取到test上的所有方法存入数组
Method[] methods = test.getClass().getDeclaredMethods();
for (Method method : methods) {
//如果指定类型的注解存在返回true否则返回false
if(method.isAnnotationPresent(testAnnotation.class)){
method.invoke(test,null);
}
}
}
}
控制台打印了打上注解的那个方法