-
这章节讲的不是很详细
查看全部 -
讲解的还行吧
查看全部 -
mark查看全部
-
没有反射,注解也就是个标识的作用,而起不到程序逻辑的作用
查看全部 -
自定义注解 使用@interface声明
成员以无参无异常声明,可以用default为成员指定一个默认值
成员类型是受限的,合法的类型包括原始类型及String,Class,Annotation,Enumeration
如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员明和赋值号
注解类可以没有成员,没有成员的注解称为标识注解
查看全部 -
自定义注解语法要求
查看全部 -
Two classifications of annotations
查看全部 -
The classification of annotations
查看全部 -
Java中的常见注解
查看全部 -
自定义注解的使用
@<注解名>(<成员名1>=<成员值1>,<成员名1>=<成员值1>,...)
示例:
@Description(desc="I am eyeColor",author="Mooc boy,age=18) public String eyeColor(){ return "red"; }
查看全部 -
自定义注解
@Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented public @interface Description { //使用关键字@interface定义注解 String desc(); //成员以无参无异常方式声明 String author(); int age() default 18; //用default为成员指定默认值 }
注解的成员类型包括:原始类型、String、Class、Annotation、Enumeration
如果注解只有一个成员,则成员名必须为 value(),在使用是可以省略成员名和赋值号(=)
注解可以没有成员,没有成员的注解成为标识注解
元注解
@Target({ElementType.METHOD,ElementType.TYPE})
声明自定义注解的作用域,参数有:CONSTRUCTOR(构造方法)、FIELD(字段声明)、LOCAL_VARIABLE(局部变量声明)、METHOD(方法声明)、PACKAGE(包声明)、PARAMETER(参数声明)、TYPE(类,接口)
@Retention(RetentionPolicy.RUNTIME)
注解的声明周期,参数有SOURCE(只在源码中显示,编译时丢弃)、CLASS(编译时会记录到class中,运行时忽略)、RUNTIME(运行时存在,可以通过反射读取)
@Inherited
表示该注解对class使用时,可以被其子类继承
@Documented
表示生成javadoc是会包含注解的信息
查看全部 -
注解的分类
按照运行机制分类:
源码注解: 只在源码中存在,编译成.class文件就不存在了。
编译时注解: 源码和.class文件中都存在。
运行时注解: 在运行时还会起作用,甚至影响运行逻辑。
按照来源分类:
来自JDK的注解
来自第三方的注解
自定义的注解
除上述之外还有“元注解”:给注解进行注解。
查看全部 -
元注解元注解
查看全部 -
常见的注解
查看全部 -
java常见注解
查看全部
举报