黑马程序员--注解
来源:互联网 发布:细说php第四版电子书 编辑:程序博客网 时间:2024/04/28 14:59
一、Java内置基本注解
1、@Deprecated:用该注解注释的程序元素,表明不鼓励程序员使用这样的元素,通常是它很危险或存在更好的选择\
2、@Override:表明当前的方法定义将覆盖超类中的方法。
3、@SuppressWarnings:表明关闭不当的编译器警告信息。
4、@Target:表明该注解可以用于什么地方。
表示该注解用于什么地方,例如:@Target(ElementType.METHOD) ElemenetType 参数包括:
ElemenetType.CONSTRUCTOR 构造器声明
ElemenetType.FIELD 域声明(包括 enum 实例)
ElemenetType.LOCAL_VARIABLE 局部变量声明
ElemenetType.METHOD 方法声明
ElemenetType.PACKAGE 包声明
ElemenetType.PARAMETER 参数声明
ElemenetType.TYPE 类,接口(包括注解类型)或enum声明,
5、@Retention:表明需要在什么级别保存该注解信息。
Retention是枚举类型,有三个值 (Source class RunTime).它是为自定义的注解服务的.适于类,接口或者枚举声明
@Retention(RetentionPolicy.SOURCE) 保留在SOURCE阶段。
@Retention(RetentionPolicy.CLASS) 保留CLASS中。
@Retention(RetentionPolicy.RUNTIME) 一支存在.
创建注解类的格式:
public @interface name{}
自定义注释:
@interface RequestForEnhancement {
int id();
String synopsis();
String engineer() default "[unassigned]";
String date();
default "[unimplemented]";
}
一旦完成定义,就可以使用它做注解声明。注解是一个特殊的修饰符,可以和其他修饰符一样(如public,static,final)用在各种地方。为方便计,注解一般放在最前面。注解修饰符由@符号、注解类型名和括号括起来的元素名/值对组成。下面这个例子声明一个方法使用了上面所定义的注解。
@RequestForEnhancement(
id = 2868724,
synopsis = "Enable time-travel",
engineer = "Mr. Peabody",
date = "4/1/3007"
)
public static void travelThroughTime(Date destination) { ... }
注解类型如果不含任何元素,被称为“标记”注解类型,如
public @interface Preliminary { }
“标记”注解类型允许忽略括号,如下:
@Preliminary public class TimeTravel { ... }
注意地方
1、注解元素可以用的类型只有:所有基本类型(int,float,boolean)、String、Class、enum、Annotation、以上类型的数组。
2、在定义元素的默认值时有限制,首先,元素不能有不确定的值,也就是说,元素必须要么具有默认值,要么在使用注解时提供元素的值;其次,对于非基本类型的元素,不能以null作为其值。
3、注解不支持继承。
- <黑马程序员>注解
- 黑马程序员_注解
- 黑马程序员__annotation注解
- 黑马程序员-java-注解
- 黑马程序员_注解
- 黑马程序员_Java注解
- 黑马程序员--注解
- 黑马程序员:注解
- 黑马程序员_注解
- 黑马程序员-注解
- 黑马程序员-注解Annotation
- 黑马程序员---注解
- 63.黑马程序员-注解
- 黑马程序员_注解
- 黑马程序员----JAVA----注解
- 黑马程序员-注解类
- 黑马程序员------注解
- 黑马程序员-注解
- 链表
- 作者自述CSE语言设计思想(二)----CSE语言表达风格
- 蛇年谈程序员发展之路
- Compiler - Python VM Get Python25_d.dll Python25_d.lib
- DropDownlist的Item显示多列数据
- 黑马程序员--注解
- 2440中断寄存器详解
- C++库函数next_permutation的递归实现(数组全排列)
- 随想2
- Java 6 JVM参数选项大全
- VIM 总结
- 在IE中使用VS.net WinForm控件
- c/c++ 右左法则
- 关于typedef的用法总结