概述
Java中的觉注解:
@Overrid:作用在方法上的注解。当方法不是重写父类的方法时会报错;
@Deprecated:作用在方法上。标记该方法为作废方法(已过时);
@SuppressWarnings:作用在方法上,压制警告。
定义注解类不能使用class、enum,也不能使用interface,而是使用 @interface。
public @interface MyAnn{}
使用注解目标:
注解可以作用在:类(接口或枚举)、属性、方法、构造器、包、参数、局部变量
注解实例:
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.TYPE, ElementType.METHOD})
public @interface MyAnn {
String name() default "党学义";
int age() default 23;
}
获取该类上的注解信息:
import java.lang.reflect.Method;
@MyAnn(name = "黑马程序员", age = 12)
class MyClass {
private int a;
@MyAnn(age = 100)
public void method() {
}
}
public class AnnTest {
public static void main(String[] args) throws ClassNotFoundException,
SecurityException, NoSuchMethodException {
//获取到该类的字节码文件
Class clazz = Class.forName("com.itheima.ann.MyClass");
//获取该类上的注解
MyAnn myann = (MyAnn) clazz.getAnnotation(MyAnn.class);
System.out.println(myann.name());
System.out.println(myann.age());
/*
* 黑马程序员
*
12
*/
//MyClass中的
获取method方法
Method method = clazz.getMethod("method", null);
//获取该方法上的注解
MyAnn myann2 = method.getAnnotation(MyAnn.class);
//注解上的name属性
System.out.println(myann2.name());
//注解上的age属性
System.out.println(myann2.age());
/*
* 党学义
*
100
*/
}
}
最后
以上就是仁爱店员为你收集整理的java自学笔记————通过反射来获取注解的信息;的全部内容,希望文章能够帮你解决java自学笔记————通过反射来获取注解的信息;所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复