关于注解Annotation第二篇

举个例子来看一看注解定义类在语法树中用哪些语法节点来表示以及如何组织的。

@Retention(RetentionPolicy.RUNTIME) // 注解会在class中存在,运行时可通过反射获取
@Target(ElementType.METHOD)         // 目标是方法
@Documented   // 文档生成时,该注解将被包含在javadoc中,可去掉
public @interface TestAnnotation {
	public String name() default "helloworld";
}

查看JCClassDecl语法节点(注解类也被当作一个类来表示)的jcModifiers属性,截图如下。

jcModifiers中的flags属性值为8705,必写为这样的表示:

(1<<13)|(1<<0)|(1<<9)

查看Flags中关于各个Modifiers指定的常量,可知是public和interface且还有个专门表示annotation的静态常量,如下:

/** Flag that marks attribute interfaces 标记属性接口, added in classfile v49.0.
     *  应该只能修饰注解定义类
     */
    public static final int ANNOTATION   = 1<<13;

然后看一下JCMethodDecl属性,截图如下:

使用如上的注解,如下:

public class C {

	@TestAnnotation(name = "小明")
	public Integer test(int a, String name, Object c) {
		return 1;
	}
}

截图如下:

时间: 2024-10-11 19:31:21

关于注解Annotation第二篇的相关文章

【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策略(MVC5+EF6) [第四篇]ASP.NET MVC快速入门之完整示例(MVC5+EF6) [番外篇]ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6) 请关注三石的博客:http://cnblogs.com/sanshi 数据库连接字符串 上一篇文章中,我们使用MVC的

spring beans源码解读之--Bean的注解(annotation)

随着spring注解的引入,越来越多的开发者开始使用注解,这篇文章将对注解的机制进行串联式的讲解,不求深入透彻,但求串起spring beans注解的珍珠,展示给大家. 1. spring beans常用的注解: public @interface Autowired:可以对成员变量.方法和构造函数进行标注,来完成自动装配的工作. Marks a constructor, field, setter method or config method as to be autowired by Sp

java 注解Annotation

什么是注解? 注解,顾名思义,注解,就是对某一事物进行添加注释说明,会存放一些信息,这些信息可能对以后某个时段来说是很有用处的. java注解又叫java标注,java提供了一套机制,使得我们可以对方法.类.参数.包.域以及变量等添加标准(即附上某些信息).且在以后某个时段通过反射将标注的信息提取出来以供使用. 通过使用Annotation,程序开发人员可以在不改变的原有逻辑的情况下,在源文件嵌入一些补充的信息. Annotation可以用来修饰类.属性.方法,而且Annotation不影响程序

(转)Spring对注解(Annotation)处理源码分析1——扫描和读取Bean定义

1.从Spring2.0以后的版本中,Spring也引入了基于注解(Annotation)方式的配置,注解(Annotation)是JDK1.5中引入的一个新特性,用于简化Bean的配置,某些场合可以取代XML配置文件.开发人员对注解(Annotation)的态度也是萝卜青菜各有所爱,个人认为注解可以大大简化配置,提高开发速度,同时也不能完全取代XML配置方式,XML 方式更加灵活,并且发展的相对成熟,这种配置方式为大多数 Spring 开发者熟悉:注解方式使用起来非常简洁,但是尚处于发展阶段,

Android开源项目第二篇——工具库篇

本文为那些不错的Android开源项目第二篇——开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. Android开源项目系列汇总已完成,包括: Android开源项目第一篇——个性化控件(View)篇 Android开源项目第二篇——工具库篇 Android开源项目第三篇——优秀项目篇 Android开源项目第四篇——开发及测试工具篇 Android开源项目第五篇——优秀个人和

java学习笔记 第二篇 核心技术(二)

第十四章 集合类 集合类用来存放对象的引用.继承关系如下图: 14.1 Collection 接口 是层次结构中的根接口,构成Collection的单位称为元素.Collection接口不能直接使用,但该接口提供了添加元素.删除元素.管理数据的方法. Collection接口常用方法: 14.2 List 集合 包括List接口以及List集合的所有实现类.List集合中的元素允许重复,各元素循序就是对象插入的顺序 1.List接口,两个重要方法: get(int index): 获取指定索引位

Java注解Annotation浅析

1. 概述 Java在1.5版本引入注解Annotation,又称Java标注,注解是一种语法元数据,可以被直接使用到源代码中,类/方法/变量/参数/包名等都可以被注解.和Javadoc标签不同,编译器在生成class文件时候能够保留注解代码,同时,可能为了在程序运行过程中(run-time)可以使用注解,Java虚拟机会把注解保留,这样就可以通过反射获取注解Annotation的相关信息. 2. 内置注解 其实我们平时会经常遇见注解,例如@Override.@Deprecated等等,这些都是

Spring Cloud第二篇 | 使用并认识Eureka注册中心

? 本文是Spring Cloud专栏的第二篇文章,了解前一篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 ?? 一.SpringCloud快速开发入门 SpringCloud是构建在SpringBoot基础之上的 1.创键一个服务提供者(springcloud-service-provider) 1-1.创键提供者类 @RestController @RequestMapping("/provider") pub

分库分表之第二篇

分库分表之第二篇 2. Sharding-JDBC快速入门 2.1需求说明 2.2. 环境建设 2.2.1环境说明 2.2.2创建数据库 2.2.3约会maven依赖 2.3 编写程序 2.3.1 分片规则配置 2.3.2 数据操作 2.3.3 测试 2.4. 流程分析 2.5 其他集成方式 2. Sharding-JDBC快速入门 2.1需求说明 使用Sharding-JDBC完成对订单表的水平分表,通过快速入门程序的开发,快速体验Sharding-JDBC的使用.人工创建两张表,t_orde