-
成员类型受限制查看全部
-
自定义注解的语法要求查看全部
-
注解的语法要求查看全部
-
注解的分类查看全部
-
@Deprecated 用于修饰已经过时的方法; @suppressWarings("deprecation") 用于通知java编译器忽略特定的编译警告。 注解分类: 一:按运行机制 1、源码注解:只在源码中存在,编译时不存在 2、编译时注解:注解在源码和.class编译时都存在 3、运行时注解:在运行阶段存在起作用 二:按照来源来分: 1、来自JDK的注解 2、来自第三方的注解 3、自定义注解 元注解:给注解进行注解 自定义注解: 1、使用@interface关键字定义注解: (1)成员以无参数无异常的的方式声明 (2)可以用default为成员制定一个默认值 (3)成员类型是受限制的,合法的类型包含原始基本类型及String、Class、Annotation、Enumeration (4)如果注解只有一个成员,则成员名必须取为value();在使用时可以忽略成员名和赋值号(=) (5)注解类可以没有成员,没有成员的注解成为标识注解 自定义注解的元注解: 1,@Target---作用域(constructor(构造方法声明),field(字段声明),local_variable(局部变量声明),method(方法声明),package(包声明),parameter(参数声明),type(类,接口声明)) 2,@Retention---生命周期(source:只在源码显示,编译时会丢弃。class:编译时会记录到class中,运行时忽略。runtime:运行时存在,可以通过反射读取) 用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中,但在程序运行时不会被虚拟机读取; 用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中; 用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中,当程序编译时,会被虚拟机保留,在运行时,用反射的方式读取。 3,Inherited---标识注解(允许子类继承) 4,Documented---生成Javadoc查看全部
-
@Target 注解的作用域。 @Retention 生命周期。 @Inherited 允许子类继承 @Documented 生成javadoc时会包含注解 @Target({ElementType.METHOD,}) //作用域 @Retention(RetentionPolicy.RUNTIME) //生命周期 @Inherited //标识注解(允许子类继承) @Documented //生成javadoc会生成注解信息 public @interface Description { //1.类型受限制,包括基本类型及String、Class、Annotation、Enumeration //2.若只有一个成员,则名称必须为value(),使用时可以忽略成员名和赋值号(=) //3.注解类可以没有成员,称为标识注解 //4成员无参且无异常声明 String desc(); String author(); //5可指定默认值 int age() default 18; } public @interface Description{ String desc; String author; int age default 18; } [ 收起全文 ]查看全部
-
在做例子中发现接口实现类中不会自动添加@Override注解,手动加入@Override注解也会报错。 上网查询可知,jdk1.5之前不支持接口实现类@Override注解,更改jdk7也不好使。后来又查到说是需要选择Java编译的版本 右键项目->Java Compiler->Compiler compliance level->1.7 即可解决。查看全部
-
JDK自带注解: @Override 表示当前方法覆盖了父类的方法 @Deprecation 表示方法已经过时 @Suppvisewarnings 表示关闭一些警告信息(通知java编译器忽略特定的编译警告) @SuppressWarnings,其参数有: deprecation,使用了过时的类或方法时的警告 unchecked,执行了未检查的转换时的警告 fallthrough,当 Switch 程序块直接通往下一种情况而没有 Break 时的警告 path,在类路径、源文件路径等中有不存在的路径时的警告 serial,当在可序列化的类上缺少 serialVersionUID 定义时的警告 finally ,任何 finally 子句不能正常完成时的警告 all,关于以上所有情况的警告查看全部
-
注解中:@Target({ElementType.TYPE}),ElementType.TYPE表示作用域是类或接口;查看全部
-
注解总结查看全部
-
@Deprecated 用于修饰已经过时的方法; @suppressWarings("deprecation") 用于通知java编译器忽略特定的编译警告。 注解分类: 一:按运行机制 1、源码注解:只在源码中存在,编译时不存在 2、编译时注解:注解在源码和.class编译时都存在 3、运行时注解:在运行阶段存在起作用 二:按照来源来分: 1、来自JDK的注解 2、来自第三方的注解 3、自定义注解 元注解:给注解进行注解 自定义注解: 1、使用@interface关键字定义注解: (1)成员以无参数无异常的的方式声明 (2)可以用default为成员制定一个默认值 (3)成员类型是受限制的,合法的类型包含原始基本类型及String、Class、Annotation、Enumeration (4)如果注解只有一个成员,则成员名必须取为value();在使用时可以忽略成员名和赋值号(=) (5)注解类可以没有成员,没有成员的注解成为标识注解 自定义注解的元注解: 1,@Target---作用域(constructor(构造方法声明),field(字段声明),local_variable(局部变量声明),method(方法声明),package(包声明),parameter(参数声明),type(类,接口声明)) 2,@Retention---生命周期(source:只在源码显示,编译时会丢弃。class:编译时会记录到class中,运行时忽略。runtime:运行时存在,可以通过反射读取) 用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候; 用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中; 用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时, 所以他们可以用反射的方式读取。 3,Inherited---标识注解(允许子类继承) 4,Documented---生成Javadoc查看全部
-
解析注解: 概念:通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。 @Inherited(子类是否可继承) 对接口interface、方法继承没有作用,对类才有效。 通过反射回去类,函数或成员以上的运行时的注解信息从而实现动态控制程序运行的逻辑查看全部
-
//使用方法:@注解名(<成员1>=<成员值1>,<成员2>=<成员值2>,...) @Description(desc="desc test",author="author test",age=18) public String eyeColor(){ return "red"; }查看全部
-
使用自定义注解查看全部
-
@Target 注解的作用域。 @Retention 生命周期。 @Inherited 允许子类继承 @Documented 生成javadoc时会包含注解 @Target({ElementType.METHOD,}) //作用域 @Retention(RetentionPolicy.RUNTIME) //生命周期 @Inherited //标识注解(允许子类继承) @Documented //生成javadoc会生成注解信息 public @interface Description { //1.类型受限制,包括基本类型及String、Class、Annotation、Enumeration //2.若只有一个成员,则名称必须为value(),使用时可以忽略成员名和赋值号(=) //3.注解类可以没有成员,称为标识注解 //4成员无参且无异常声明 String desc(); String author(); //5可指定默认值 int age() default 18; } public @interface Description{ String desc; String author; int age default 18; }查看全部
举报
0/150
提交
取消