Java 注解Annotation

1、注解概念

注解就是某种注解类型的一个实例,我们可以用它在某个类、方法等程序元素上进行标注,这样编译器在编译我们的文件时,会根据我们自己设定的方法来编译类。Java注解能够提供代码的相关信息,同时对于所注解的代码结构又没有直接影响。

2、注解的分类

1)元注解:用来自定义注解

@Documented 标记生成javadoc:

  @Inherited 标记继承关系

  @Retention 注解的生存期

  @Target 标注的目标,表明定义的注解可以用在什么地方,值有TYPE,METHOD, CONSTRUCTOR, FIELD等等。如果Target元注解不存在,那么该注解就可以使用在任何程序元素之上

2)内置注解:Java提供3种内置注解

@Override – 当我们想要覆盖父类的一个方法时,需要使用该注解告知编译器我们正在覆盖一个方法。这样的话,当父类的方法被删除或修改了,编译器会提示错误信息。

@Deprecated – 当我们想要让编译器知道一个方法已经被弃用(deprecate)时,应该使用这个注解。Java推荐在javadoc中提供信息,告知用户为什么这个方法被弃用了,以及替代方法是什么。

 @SuppressWarnings – 这个注解仅仅是告知编译器,忽略它们产生了特殊警告。

  3)一般注解:自定义注解或框架(spring框架)定义的注解

3、创建自定义注解

创建自定义注解与编写接口很相似,除了它的接口关键字前有个@符号,可以看成同class、interface类似类型:

类定义:class

接口定义:interface

注解定义:@interface加上元注解

package testAnnotation;

import java.lang.annotation.Documented;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

@Documented

@Retention(RetentionPolicy.RUNTIME)

public @interface Person{

    String name();

    int age();

}


·  注解方法不能有参数。

·  注解方法的返回类型局限于原始类型,字符串,枚举,注解,或以上类型构成的数组。

·  注解方法可以包含默认值。

·  注解可以包含与其绑定的元注解,元注解为注解提供信息


3、注解解析

package testAnnotation;

//由于该注解没有@Target标注,则可以用在任何程序元素上
@Person(name="xiaohu",age=25)
public class test 
{
	public static void print(Class c)
	{     
        //通过java.lang.Class的getAnnotation方法获取注解,如果有注解,则返回注解。否则返回null
        Person person = (Person)c.getAnnotation(Person.class);        
        if(person != null)
        {
            System.out.println("name:"+person.name()+" age:"+person.age());
        }       
    }
	
    public static void main(String[] args){
        test.print(test.class);
    }
}

输出结果:

name:xiaohu age:25

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值