美文网首页
@interface自定义注解的语法

@interface自定义注解的语法

作者: 夏_8a64 | 来源:发表于2020-01-18 15:00 被阅读0次

自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation接口,由编译程序自动完成其他细节。

                      在定义注解时,不能继承其他的注解或接口。

@interface 用来声明一个注解,其中的每一个方法实际上是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就

是参数的类型(返回值类型只能是基本类型、class、String、enum)。

定义注解格式: public @interface 注解名 {定义体}

注解参数的可支持数据类型:

    1、八种基本数据类型(byte,short,int,long,float,double,char,boolean)

    2、String类型

    3、enum类型

    4、Annotation类型

    5、Class类型

    6、以上所有类型的数组

    Annotation类型里面的参数该怎么设定:

    第一、只能用public或默认(default)这个两个访问权修饰,例如,String value();这里把方法设为default默认类型;

    第二、参数成员只能用基本类型byte,short,int,long,char,float,double,boolean八种基本数据类型和String,enum,class,annotation等数据类型,

                已经这些类型的数组。例如,String value();这里的参数成员就为String;

    第三、如果只有一个参数成员,最好把参数名称设为“value”,后加小括号

实例:

                        package annotation;

                        import java.lang.annotation.Documented;

                        import java.lang.annotation.ElementType;

                        import java.lang.annotation.Retention;

                        import java.lang.annotation.RetentionPolicy;

                        import java.lang.annotation.Target;

                        /**

                        * 水果名称注解

                        * @author peida

                        *

                        */

                        @Target(ElementType.FIELD)

                        @Retention(RetentionPolicy.RUNTIME)

                        @Documented

                        public @interface FruitName {

                                String value() default "";

                           }

    注解元素的默认值:

  注解元素必须有确定的值,要么在定义注解的默认值中指定,要么在使用注解时指定,非基本类型的注解元素的值不可为null。因此, 使用空字符串或0作为默认值是一种常用的做法。这个约束使得处理器很难表现一个元素的存在或缺失的状态,因为每个注解的声明中,所有元素都存在,并且都具有相应的值,为了绕开这个约束,我们只能定义一些特殊的值,例如空字符串或者负数,一次表示某个元素不存在,在定义注解时,这已经成为一个习惯用法。例如:

package annotation;

import java.lang.annotation.Documented;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

* 水果供应者注解

* @author peida

*

*/

@Target(ElementType.FIELD)

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface FruitProvider {

    /**

    * 供应商编号

    * @return

    */

    public int id() default -1;

    /**

    * 供应商名称

    * @return

    */

    public String name() default "";

    /**

    * 供应商地址

    * @return

    */

    public String address() default "";

}

相关文章

  • @interface自定义注解的语法

    自定义注解:使用@interface自定义注解时,自动继承了java.lang.annotation接口,由编译程...

  • springMVC的自定义annotation(@Retenti

    自定义注解: 使用@interface自定义注解时,自动继承了java.lang.annotation.Annot...

  • JAVA之自定义注解

    java的基本注解和元注解,不满足条件时可以自定义注解。声明自定义注解使用@interface关键字实现。 根据注...

  • 自定义注解

    第一步:自定义注解类 自定义注解的签名为public @interface ,在该类上需要再打两个注解,@Targ...

  • Java注解教程及自定义注解

    创建Java自定义注解 创建自定义注解和创建一个接口相似,但是注解的interface关键字需要以@符号开头。我们...

  • 自定义注解

    创建Java自定义注解 创建自定义注解和创建一个接口相似,但是注解的interface关键字需要以@符号开头。我们...

  • SpringBoot之自定义注解(基于BeanPostProce

    步骤使用@interface 自定义注解编写注解处理类,实现BeanPostProcessor接口原理实现Bean...

  • java注解浅析

    自定义注解的定义方式 public @interface Class Preamble 一般来说,定义注解需要指定...

  • Spring注解原理探索(二)

    之 Java中如何自定义注解 1.先看注解定义示例 @Override 源码定义: 使用@interface 表示...

  • Java注解笔记

    Java注解详解 Java注解是JDK1.5以后添加的特性,自定义注解需要声明为@interface。 最简单的注...

网友评论

      本文标题:@interface自定义注解的语法

      本文链接:https://www.haomeiwen.com/subject/kbvkzctx.html