Java 注解的初步学习

注解语法

public @interface Length{
}

说明:

  • 通过关键字 @interface 定义,并不是接口;

注解的属性

注解的属性也叫做成员变量。注解只有成员变量,没有方法。注解的成员变量在注解的定义中以“无形参的方法”形式来声明,其方法名定义了该成员变量的名字

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation {

    public int id() default -1;

    public String msg() default "Hi";

}

说明:

  • 如果一个注解内仅仅只有一个名字为 value 的属性时,应用这个注解时可以直接接属性值填写到括号内;
  • 有一种情况是一个注解没有任何属性,在应用这个注解的时候,括号都可以省略;
  • 在注解中定义属性时它的类型必须是 8 种基本数据类型外加 类、接口、注解及它们的数组;

元注解

元注解是可以注解到注解上的注解,或者说元注解是一种基本注解,但是它能够应用到其它的注解上面。

@Retention

Retention 的英文意为保留期的意思。当 @Retention 应用到一个注解上的时候,它解释说明了这个注解的的存活时间。

  • RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。
  • RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。
  • RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们

@Documented

它的作用是能够将注解中的元素包含到 Javadoc 中去。

@Target

@Target 指定了注解运用的地方,规定了只能张贴到方法上、类上、方法参数上等等。@Target 有下面的取值:

  • ElementType.ANNOTATION_TYPE 可以给一个注解进行注解
  • ElementType.CONSTRUCTOR 可以给构造方法进行注解
  • ElementType.FIELD 可以给属性进行注解
  • ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
  • ElementType.METHOD 可以给方法进行注解
  • ElementType.PACKAGE 可以给一个包进行注解
  • ElementType.PARAMETER 可以给一个方法内的参数进行注解
  • ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举

@Inherited

Inherited 是继承的意思,但是它并不是说注解本身可以继承,而是说如果一个超类被 @Inherited 注解过的注解进行注解的话,那么如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解。

参考:

原文地址:https://www.cnblogs.com/michael-xiang/p/12369898.html

时间: 2024-10-30 04:32:13

Java 注解的初步学习的相关文章

java 注解(annotation)基础学习

元注解[email protected]  @inherited  @Retention @Documented @Retention:这个注解注在其他注解上,并用来说明如何存储已被标记的注解.用来标记注解并提供注解的信息.可能 的值是: SOURCE:  表明这个注解会被编译器忽略,并只会保留在源代码中. CLASS:      表明这个注解会通过编译驻留在CLASS文件,但会被JVM在运行时忽略,正因为如此,其在运行时不可见. RUNTIME:表示这个注解会被JVM获取,并在运行时通过反射获

Java消息服务初步学习(基于Spring In Action的整理)

几个名词 Java消息服务(Java Message Service)是一个Java标准,定义了使用消息代理的通用API. 消息代理(message broker):类似于邮局的作用,确保消息被投递到指定的目的地. ActiveMQ Kafka 目的地(destination) 队列(queue,点对点模型):消息可以有多个接收者,但每一条消息只能被一个接收者取走. 主题(topic,点对线模型):订阅此主题的订阅者都会接收到此消息的副本. 异步消息相较于同步消息的优点 时间:异步消息不需要等待

java注解学习笔记

今天看了下有关java注解的视频学习资料在.做点笔记: 学java注解的目的: 能看别人代码,特别是框架代码.由于肯定与注解有关. 编程更简洁,代码清晰. java注解是java1.5引入的:注解概念是java提供的一种原程序中的元素关联不论什么信息和元数据的途径和方法. 常见注解(编译时注解); @override:方法覆盖了它的父类的方法 @Deprecated:这个凝视是一个标记凝视. 所谓标记凝视.就是在源程序中增加这个标记后,并不影响程序的编译.但有时编译器会显示一些警告信息. 或者在

Java 注解 入门

这几天在学习Spring3.x,发觉现在许多框架都用上了java注解功能,然后自己就对java注解这方面初步学习了一下. 首先,注解跟注释不是一个意思,也根本不是同一个事物. 注释就是我们平常平常中对代码作解释的,也就是常见的"//..........."和"/*..............*/",相信大家也很熟悉,这里就不多说了. 对于注解,可以说是一个非常有用的技术,何为注解,其实注解就是作为一种描述,是对代码的一种描述,并且是可以读取的,可以是在程序运行时写进

Java注解再学习

注解就是一个标识符,用来标识身份.处理规则等.注解是出现可以代替XML配置文件,使程序更加清晰明了.注解也是框架配置的发展方向,对于Spring而言,虽然有人反对使用注解对Spring进行配置,说这是违背了Spring的IoC的理念,其实不然.使用注解将Java类注解为配置文件和使用XML是一样的,还可以减少配置文件,并且更加自由化的定义bean的初始化过程. 注解是一门比较简单却很实用的技术,定义注解使用@interface关键字: 1 public @interface MyAnnotati

java 注解 学习

周末闲来无事,想要研究一下注解方面的知识,以前看过几次,都忘记了,这次学习下,并且写篇文章记录下, 1.元注解  元注解是指注解的注解.包括 @Retention @Target @Document @Inherited四种. 1.1.@Retention: 定义注解的保留策略  Java代码 复制代码代码如下: @Retention(RetentionPolicy.SOURCE) //注解仅存在于源码中,在class字节码文件中不包含 @Retention(RetentionPolicy.CL

Java深度历险(三) Maven初步学习

这几天接触这个词,很多遍了,只是浅显的体会到它在GXPT中的好处,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享. Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. 在gxpt中的体现 1. 父子关系 一个多模块项目通过一个父POM 引用一个或多个子模块来定义. a. 在父目录中分别创建子项目 b. 父项目,通过以下配置,将子项目关联: 如下: <span style="font-size:18px;"

java初步学习hello word

java初步学习hello word 发表于 2012-08-16 08:05:12 by 月小升 1.下载 java JDKhttp://www.oracle.com/technetwork/java/javase/downloads/index.html 2.安装 JDK 3.打开命令行 输入 java 按下 Enter 你会看到 Usage: java [-options] class [args...] (to execute a class) or java [-options] -j

Java注解项目实战即模拟Hibenernate生成sql语句

整理了近期学习java注解的部分代码 ,借助java注解模拟Hibenernate ORM模型建立对象与sql语句的映射 Table 注解的创建 package com.imooc.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.