注解

原创 2011年01月11日 21:23:00

注解
Java API中的三种注解:
1.@SupperssWarnings
 @SupperssWarnings("deprecation")//告诉编译工具已知此方法过时,不需再提

示了。
2.@Deprecated
  在定义一个方法时,前面加上@Deprecated//说时这个方法已过时,让只前用到

这个方法的程序继续运行,但告知新的用户使用时注意,尽量不要使用。
3。@Override
  在定义一个方法时,前面加上@Override//告诉编译器,此方法如果是覆盖父类

的方法,如参数不正确,则提示错误。
总结:
    注解相当于一种标记,加了注解就等于打上了某种标记,没加,则等于没有某

种标记,以后,javac编译器,开发工具和其他程序可以用反射来了解你的类及各

种元素上有无何种标记,看你有什么标记,就去干相应的事。标记可以加在包、类

、字段、方法、方法的参数以及局部变量上。

注解就相当于一个你的源程序中要调用的一个类,要在源程序中应用某个注解,得

先准备好了这个注解类。就像你要调用某个类,得先有开发好的这个类。

注解的注解称为元注解:
@Retention元注解,有三种取值:RetentionPolicy.SOURCE、

RetentionPolicy.CLASS、RetentionPolicy.RUNTIME;分别对应:java源文件-

>class文件->内存中的字节码。
@Target元注解,默认值为任何元素,设置Target等于ElementType.METHOD.

*什么是注解的属性
    一个注解相当于一个胸牌,如果你胸前贴了胸牌,就是传智播客的学生,否则

,就不是。如果还想区分是哪个班的学生,这时候可以为胸牌再增加一个属性来进

行区分。加了属性的标记效果为:@MyAnnotation(color="red")
*定义基本类型的属性和应用属性
    在注解类中增加String color();
    @MyAnnotation(color="red")//设置注解的属性值
*用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法
    MyAnnotation a=(MyAnnotation)Annotation.class.getAnnotation

(MyAnnotation.class);
    System.out.println(a.color());//得到属性值时,调用的是方法
    可以认为@MyAnnotation是MyAnnotation类的一个实例对象。
*为属性指定缺省值
    String color() default "yellow";
*value属性
    String value() default "zxx";
    如果注解中有一个名称为value的属性,且你只想设置value属性(即其他属性

都采用默认值或者你只有一个value属性),那么可以省略value=部分,例如:
@MyAnnotation("lhm")。


为注解增加高级属性
*数组类型的属性
    int[] arrayAttr() default{1,2,3};
    @MyAnnotation(arrayAttr={2,3,4})
    如果数组属性只有一个元素,这时候属性值部分可以省略大括号。
*枚举类型的属性
    EnumTest.TrafficLamp Lamp();
    @MyAnnotation(lamp=EnumTest.TrafficLamp.GREEN)
*注解类型的属性:
    MetaAnnotation annotationAttr() default @MetaAnnotation("xxxx");
    @MyAnnotation(annotationAttr=@MetaAnnotation("YYY")
    可以认为上面这个@MyAnnotation是MyAnnotation类的一个实例对象,同样的

道理,可以认为上面这个@MetaAnnotation是MetaAnnotation类的一个实例对象,

调用代码如下:
  MetaAnnotation ma=MyAnnotation.annotationAttr();
  System.out.println(ma.value());

枚举和注解都是特殊的类,不能用new创建它们的实例对象,创建枚举的实例对象

就是在其中增加元素。在程序中如何创建出一个注解的实例对象呢?那就是直接用

@放上一个标记即可。

Annotation(三)——Spring注解开发

Spring框架的核心功能IoC(Inversion of Control),也就是通过Spring容器进行对象的管理,以及对象之间组合关系的映射。通常情况下我们会在xml配置文件中进行action,...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月31日 22:22
  • 23636

Java 8 新特性:扩展注解(类型注解和重复注解)

一.注解(JDK1.5) 二.注解更新(JDK1.8) 类型注解和重复注解…………
  • Sun_2134
  • Sun_2134
  • 2016年05月04日 18:11
  • 6228

Hibernate注解详解(超全面不解释)

一。实体Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明。 声明实体Bean @Entity public class Fli...
  • sufei58
  • sufei58
  • 2015年09月05日 11:24
  • 47043

java注解,@,注解有什么用?

@是java注解,即annotation。 1可以理解为插件,是代码级别的插件,在类的方法上写:@XXX,就是在代码上插入了一个插件。 2Java注解是附加在代码中的一些元信息,用于一些工具在编译、运...
  • Ideality_hunter
  • Ideality_hunter
  • 2016年11月11日 14:44
  • 6057

Struts2基于注解的Action配置

使用注解来配置Action的最大好处就是可以实现零配置,但是事务都是有利有弊的,使用方便,维护起来就没那么方便了。   要使用注解方式,我们必须添加一个额外包:struts2-conven...
  • qq_16769857
  • qq_16769857
  • 2016年07月04日 14:30
  • 8011

SpringMVC--常用注解(详解)

常用的SpringMVC注解,不看不知,对比真美妙~
  • successA
  • successA
  • 2016年01月04日 18:45
  • 7669

注解的可继承问题

@XXX如果在父类意已经标注上去的话,能不能被子类继承到要看源码里面是否有@Inheritance 例如: @Target({ElementType.TYPE}) @Retention...
  • qqhuang2012
  • qqhuang2012
  • 2017年03月06日 17:45
  • 870

注解(一)——注解入门

注解了解注解及java提供的几个基本注解 @SuppressWarnings 首先编写一个AnnotationTest类,先通过@SuppressWarnings的应用让大家认识和了解一下注解,通过...
  • yerenyuan_pku
  • yerenyuan_pku
  • 2016年09月19日 10:43
  • 1455

Annotation(四)——Struts2注解开发

Hibernate和Spring框架的开发前边总结了,这次看一下流行的MVC流程框架Struts2的注解开发吧。Struts2主要解决了从JSP到Action上的流程管理,如何进行Uri和action...
  • liujiahan629629
  • liujiahan629629
  • 2014年03月31日 22:29
  • 22915

自定义注解以及获取注解

自定义和解析注解 一、前言                               注解(Annotation)作为元数据的载体,为程序代码本身提供额外的信息,使用过MyBatis等ORM...
  • dapinxiaohuo
  • dapinxiaohuo
  • 2016年01月07日 09:56
  • 835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:注解
举报原因:
原因补充:

(最多只允许输入30个字)