`
oham_一1一
  • 浏览: 51627 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java 自定义annotation使用示例

阅读更多

Annotation 是一种用于描述数据的一种数据,在Java里所描述的数据指的是Java的程序代码,主要目的是为了让第三者能够从这些annotation当中得到一些信息,但也能用于实现某种业务上的操作,比如Spring中使用到的那些annotation,鄙人就是想像Spring那样使用annotation而作这篇笔记。

 

自定义一个annotation,TestMyAnno.java:

 

package learnHibernate.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MyAnno {
	public enum Member{OHAM, LULU, CANCAN, MAOMAO};
	
	Member member() default Member.OHAM;
	String birth();
}

 解析:

    1.@Target——用于指定该Annotation类型可以用在注释在哪些元素上,形如“@Target(value=METHOD)”表示只能用于注释方法,value可以指定以下:


 若一个自定义的annotation没有表示@Target,则该自定义的annotation可以用于任何的元素上。

 

   2.@Retention用于设定该annotation保留到什么时候,通过RetentionPolicy这个enum类型指定,有三个值:CLASS,代表保留到编译好的class文件中,但执行的时候并不会把annotation的数据加载到JVM当中,默认值,用在不想给源码别人,但又想让别人知道一些源码里的信息;SOURCE,代表保留到源码当中,如@Override那样的作用;RUNTIME,代表会保留到class文件当中,并且执行的时候也会加载到JVM当中,即runtime的时候,我们可以取出annotation的信息用于实现业务逻辑,如Spring的annotation那般。

   3.@Document,用于生产Doc文档用,想@Deprecated那样。

   4.@Inherited,用于类之间的继承,当父类使用了annotation,这些annotation类型以及其所设定的参数值并不会一并继承给父类的子类,若想让annotation的数据可以继承给子类,需要给该annotation标上@Inherited,注意,@Inherited只对类有作用,所以使用了@Inherited的annotation只能使用在类上(接口也不行)。

 

测试代码:TestMyAnno.java,TestMyAnno类被@MyAnno注释,鄙人直接在其main方法里做测试。。。

package learnHibernate.bean;

import learnHibernate.annotations.MyAnno;
import learnHibernate.annotations.MyAnno.Member;

@MyAnno(member=Member.LULU, birth="2000/1/12")
public class TestMyAnno {

	public static void main(String[] args) {
		
		Class cls = TestMyAnno.class;
		
		//判断cls是否有被@MyAnno标注
		boolean hasMyAnno = cls.isAnnotationPresent(MyAnno.class);
		
		if(hasMyAnno) {
			//获取当前被@MyAnno标注的class的MyAnno对象
			MyAnno anno = (MyAnno)cls.getAnnotation(MyAnno.class);
			System.out.println(anno.birth() + "  " + anno.member());
			
			//这里只是玩玩printf怀念下,不必介意
			System.out.printf("%s   %s", anno.member(), anno.birth());
		}
		
	}
	
	
	
}

 

  • 大小: 10.3 KB
分享到:
评论

相关推荐

    自定义Annotation例子

    在Java编程语言中,Annotation(注解)是一种元数据,它提供了一种安全的方法来关联信息和代码(类、方法、变量等)。自定义Annotation允许...理解并熟练掌握自定义Annotation的使用,对于提升Java开发能力至关重要。

    Java自定义注解Annotation的使用

    ### Java自定义注解Annotation的使用 #### 1. 前言 自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,...

    Java自定义注解实例

    Java自定义注解是Java编程语言中的一个重要特性,它允许程序员在代码中插入元数据,这些元数据可以被编译器或运行时环境用来执行特定的任务。自定义注解不仅提高了代码的可读性,还简化了代码处理,特别是在框架和库...

    自定义Annotation注解

    本教程将通过一个简单的自定义Annotation注解示例——`CustomAnnotationDemo`,帮助新手了解如何创建和使用自定义注解。 首先,让我们看看如何定义一个自定义注解。在Java中,注解的定义使用`@interface`关键字。...

    java 自定义注解例子

    本教程将通过一个超市自动售卖机的例子来详细讲解如何在Java中实现自定义注解。 首先,我们需要了解注解的基本结构。在Java中,注解以`@`符号开头,后面跟着注解的名称。自定义注解的定义类似于接口,但使用`@...

    java自定义注解实践

    "java自定义注解实践" Java 自定义注解实践是 Java 语言中的一项重要特性,它可以使开发者自定义注解,以满足不同的需求。在本文中,我们将详细介绍 Java 自定义注解的概念、特点、实现方式及实践应用。 概念 ----...

    2个案例 自定义annotation进行查询对象封装 itext 打印案例

    标题中的“自定义annotation进行查询对象封装”涉及的是在编程中使用注解(Annotation)来增强代码的功能,特别是在数据查询和对象映射方面。注解是一种元数据,它提供了将信息附加到代码(如类、方法或变量)的方式...

    java自定义注解和通过反射获取注解

    Java自定义注解和通过反射获取...总的来说,理解并熟练掌握Java自定义注解和反射的使用,对于提升Java开发者的编程能力和编写高质量代码具有重要意义。通过深入学习和实践,你可以创造出更加优雅和强大的Java应用程序。

    java自定义注解

    Java自定义注解是Java平台提供的一种元编程机制,它允许程序员在代码中插入特定的标记,这些标记可以在编译时或运行时被处理器解析,从而实现特定的功能。自定义注解可以用来增强代码的可读性,简化代码处理,以及...

    java 自定义注解例子 superMarket

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器或JVM提供信息的方式,这些信息可以用于代码分析、编译时验证或者运行时处理。自定义注解允许开发者创建自己的元数据类型,以满足特定的需求。...

    JDK5.0 Java Annotation 介绍(ppt)

    1. **定义和使用**:从 JDK5.0 开始,Java 提供了定义和使用自定义 Annotation 的能力。这包括定义 Annotation 类型的语法、声明 Annotation 的语法,以及读取 Annotation 的 API。Annotation 不直接改变代码的执行...

    java 自定义注解

    以上就是关于Java自定义注解的基本概念、定义和使用方法。通过自定义注解,开发者可以更灵活地扩展Java语言的功能,实现更复杂的编程模式。在实际项目中,自定义注解常用于框架扩展、代码生成、验证规则设定等多种...

    自定义注解实现伪动态传参的小demo

    在Java编程语言中,注解(Annotations)是一种元数据,用于提供有关代码的信息,这些信息可以被编译器或运行时环境使用。自定义注解是扩展Java功能的强大工具,可以用于实现各种目的,如代码生成、编译时检查、运行...

    Java自定义注解程序Demo

    Java自定义注解是Java语言中的一个重要特性,它允许我们创建具有元数据的代码,这些元数据可以提供有关代码的额外信息,而不会直接影响代码的...通过学习和理解这个示例,你可以更好地掌握Java自定义注解的使用技巧。

    Java自定义注解md,学习代码

    Java自定义注解是Java语言中的一个重要特性,它允许开发者创建自己的元数据,为代码提供额外的信息,这些信息可以被编译器或者运行时环境用来进行特定的处理。自定义注解可以用于代码的编译检查、代码生成、运行时...

    Java Annotation的讲解和例子

    在这个例子中,`MyAnnotation`是自定义注解,`MyClass`使用了这个注解。`AnnotationProcessor`是处理器,可以检查并处理带有`MyAnnotation`的类。 总结,Java注解为开发者提供了一种优雅的方式来添加元数据,简化了...

    Annotation使用手册

    自定义 Annotation 的创建涉及到定义 Annotation 类型和实际使用 Annotation。定义 Annotation 类型时,使用 `@interface` 关键字: ```java public @interface MyAnnotation { String value() default ""; } ``` ...

    Java实战篇:设计自己的Annotation

    **2.2 自定义Annotation示例** **2.2.1 Retention 和 Target 注解** - **@Retention**:用于指定Annotation的生命周期。它可以取三个枚举值之一:`SOURCE`、`CLASS`、`RUNTIME`。 - `SOURCE`:只存在于源代码中,...

    自定义注解annotation及用法

    在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器、工具或运行时系统提供额外信息的方式。自定义注解允许开发者创建自己的标记来满足特定需求,比如代码生成、验证、持久化等。本文将深入探讨...

Global site tag (gtag.js) - Google Analytics