黑马程序员_java的注解学习_04

<a href="http://www.itheima.com" target="blank">android</a>

<a href="http://www.itheima.com" target="blank">java培训</a>期待与您交流

1 JAVA 注解编辑 

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


你可能感兴趣的:(黑马程序员_java的注解学习_04)