zoukankan      html  css  js  c++  java
  • Java注解学习

    从Java 5 开始,可以对Java代码进行注解。Java提供了特定的注解(比较基础的例如:Override、Deprecated、SuppressWarnings)。

    元XXX:解释XXX的XXX。

    注解本身是没有功能的,和xml一样,都是一种元数据(解释数据的数据,即配置如何解释数据)。注解的功能来自于使用注解的地方。

    自定义注解,有三种:

    普通注解:

    public @interface aAnnotation {
        String value();
        int i();
        float f() default 2.0f;//如果某个属性有默认值,则不需要在使用时赋值
        double d();
    }
    
    public class AnnotationTester {
        @aAnnotation(value = "hello", i = 1, f = 2.0f, d = 3.0)
        public void Method()
        {
        }
    }

    标记注解(标记注解中没有属性):

    public @interface MarkerAnnotation {
    }
    
    public class AnnotationTester {
        @MarkerAnnotation
        public void Method()
        {
        }
    }

    单值注解:

    public @interface SingleValueAnnotation {
        String value();//单值注解:只有一个值,因此规定值的名称只能叫value,不能换成其他名字
    }
    
    public class AnnotationTester {
       //单值注解的使用 @SingleValueAnnotation("hello") public void Method() { } }

    元注解(在annotation包中,提供了4个元注解):

    • @Documented:属于标记注解,表明可以通过 javadoc 或者类似工具,将注解进行文档化。
    • @Retention:属于单值注解,表明注解的保留程度。value为枚举类型,定义:RetentionPolicy value()。
    • @Target:也属于单值注解,指定注解适用的程序元素的类型,如方法METHOD、属性FIELD。因此value也为枚举,但却是枚举数组,定义:ElementType[] value()。使用如:@Target(ElementType.METHOD),或者@Target({ ElementType.METHOD, ElementType.FIELD })
    • @Inherited:属于标记注解,表明注解会被自动继承。
  • 相关阅读:
    日记搬迁
    学生会管理系统(JavaWeb与数据库课程小实践)
    疯狂忙碌边缘
    英语复习二:每单元的翻译篇章
    Don't always upset yourself !
    一文教你读懂并使用GTD高效时间管理法
    Day05-黑马学习篇(二)matplot基本绘图函数集合
    Day04-黑马学习篇(一)matplot画图基本要点
    Day03-基础篇(四)Pandas与数据清洗
    Day02 基础篇(三)用NumPy快速处理数据
  • 原文地址:https://www.cnblogs.com/quanxi/p/7082530.html
Copyright © 2011-2022 走看看