<a href="http://www.itheima.com" target="blank">android训</a>
<a href="http://www.itheima.com" target="blank">java培训</a>期待与您交流!
Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据(用来描述数据的数据)的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件、或者运行时中出现(SOURCE/CLASS/RUNTIME)。
java的注解:(是jdk1.5以后的新特性)一个注解就是一个类,就是告诉java编译工具或jdk该如何做,用一个注解就相当于创建一个注解类的对象。就加上了某种标记,给jdk和编译器给提示。
2元数据的作用编辑
如果要对于元数据的作用进行分类,还没有明确的定义,不过我们可以根据它所起的作用,大致可分为三类:
编写文档:通过代码里标识的元数据生成文档。
代码分析:通过代码里标识的元数据对代码进行分析。
编译检查:通过代码里标识的元数据让编译器能实现基本的编译检查
3元注解(注解的注解)
@SuppressWarrings("deprecation")--------压缩警告是jdk自己内的注解
@SuppressWarnings,其参数有:
deprecation,使用了过时的类或方法时的警告
unchecked,执行了未检查的转换时的警告
fallthrough,当 Switch 程序块直接通往下一种情况而没有 Break 时的警告
path,在类路径、源文件路径等中有不存在的路径时的警告
serial,当在可序列化的类上缺少serialVersionUID 定义时的警告
finally ,任何 finally 子句不能正常完成时的警告
all,关于以上所有情况的警告
@Deprecated-----------对新的调用者提示不要用,对老的则可以继续的支持
@Override----------表示对父类方法的覆盖
@Retenction(RecentionPolicy.RUNTIME)------------注解保留内存的字节码文件中
@Retenction(RecentionPolicy.CLASS)------------注解保留class文件中
@Retenction(RecentionPolicy.RESOURCE)------------注解保留java源文件中
@Target{(ElementType.METHOD),(ElementType.TYPE)}
编译器吧java文件编译成class文件,然后由类加载器加载到内存中形成2进制文件,这才是----字节码
4 注解的使用和定义
在开发中的注解都是别人写好的类,
自定义注解类:@interface XXX{}
应用注解类:@A
Class B{}
为自定义注解增加属性(没有给定缺省值就是必须的添)
pulblic @interface myAnntation{
Stringcolor() default "blue";定义了一个public abstract方法,返回String类型的值
就是该注解String类型的属性,缺省值是“blue”。
Stringvalue();
int[]array() default{3,4,5};//添加数组类的属性
EnumTest.getFicLamplamp();//枚举类型的属性
}
@myAnntation(color ="red" vlaue="123" array={3,3,4})
public class HAAH{ ......}//HAAH类应用注解myAnntation
----------------------- android培训、java培训、java学习型技术博客、期待与您交流! ----------------------
详情请查看:http://edu.csdn.net/heima