java注解annotation,自定义注解

定义:

package com.dxz.annotation;

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

//定义注解
@Target({ ElementType.TYPE, ElementType.FIELD, ElementType.METHOD,
        ElementType.LOCAL_VARIABLE })
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    // 定义两个成员变量
    String name() default "jack";

    int age() default 22;
}

测试:

package com.dxz.annotation;

import java.lang.annotation.Annotation;

/*
 * 获得注解信息要注意,当前注解一定要保留在RUNTIME
 *
 * 获得注解信息方法:
 * 1.getAnnotations()
 * 调用注解成员变量
 * 1.假设注解对象ann,调用成员变量方式:ann.name();
 * 2.与调用类方法类似
 */
public class TestAnnotationInfo {

    public static void main(String[] args) {
        TestAnnotationInfo tai = new TestAnnotationInfo();
        try {
            tai.getInfo();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (SecurityException e) {
            e.printStackTrace();
        }
    }

    @MyAnnotation(name = "zhangxun", age = 20)
    public void getInfo() throws NoSuchMethodException, SecurityException {
        // 获取TestAnnotationInfo对象的getInfo()方法中包含的所有注解
        @MyAnnotation
        Annotation[] annos = TestAnnotationInfo.class.getMethod("getInfo")
                .getAnnotations();
        // 遍历annos数组
        for (Annotation ann : annos) {
            // ann就是一个Annotation 对象
            // 判断当前ann是否是MyAnnotation注解类型
            if (ann instanceof MyAnnotation) {
                System.out.println(ann);
                System.out.println(((MyAnnotation) ann).name());
                System.out.println(((MyAnnotation) ann).age());
            }
        }
    }

}
时间: 2024-11-06 19:28:45

java注解annotation,自定义注解的相关文章

深入浅出Java Annotation(元注解和自定义注解)

一.基本概述 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类.方法.成员变量等)进行关联. 更通俗的意思是为程序的元素(类.方法.成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或框架使用的. Annontation像一种修饰符一样,应用于包.类型.构造方法.方法.成员变量.参数及本地变量的声明语句中. 二.原理 Annotation其实是

java的Annotation注解和自定义注解

import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; //target 代表目标 value里面可以是值也可以是数组 METHOD(方法) TYPE(类型) @Target(value={ElementType.METHOD,Ele

Java注解应用,自定义注解映射实现方案说明.

插件结构如图: 注册模块定义了三个:用于实体与表映射的注解,用于属性到表字段的映射,用于映射时过滤掉的注解. 1.用于实体与表映射的注解 package com.dobby.plugins.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.a

Java中的自定义注解

自定义注解的语法要求 定义自定义注解的关键字为@interface 成员以无参无异常方式声明,可以给成员指定一个默认值(default):成员的类型是受限制的,合法的类型有基本数据类型及String,Class,Annotation,Enumeration;如果注解只有一个成员,则必须取名为value(),使用时可以忽略成员名和"=" 注解类可以没有成员,此时称为标识注解 _________________________________________________________

Java反射与自定义注解

反射,在Java常用框架中屡见不鲜.它存在于java.lang.reflact包中,就我的认识,它可以拿到类的字段和方法,及构造方法,还可以生成对象实例等.对深入的机制我暂时还不了解,本篇文章着重在使用方面,并附上一个本人应用到项目中的案例. 基础姿势 拿到类,反射是以类为基础的基础,首先拿到项目中的类,既可以这样拿 Class<?> clazz = Class.forName(类路径); 也可以这样拿 Class<?> clazz = 类名.getClass(); 在一般意义的J

我爱java系列---【自定义注解】

一.注解概述 1.定义:注解(Annotation),也叫元数据.一种代码级别的说明.它是JDK1.5及以后版本引入的一个特性,与类. 接口.枚举是在同一个层次.它可以声明在包.类.字段.方法.局部变量.方法参数等的前面,用来对这些元素 进行说明,注释. 2.作用分类: 编写文档:通过代码里标识的注解生成文档[例如,生成文档doc文档] 代码分析:通过代码里标识的注解对代码进行分析[例如,注解的反射] 编译检查:通过代码里标识的注解让编译器能够实现基本的编译检查[例如,Override] 3.常

Java注解(自定义注解、view注入)

注解这东西虽然在jdk1.5就加进来了,但他的存在还是因为使用Afinal框架的view注入才知道的.一直觉得注入特神奇,加了一句就可以把对应view生成了. 下面我们来认识一下注解这个东西 一.注解相关知识 注解相当于一种标记,在javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就去干相应的事.标记可以加在包,类,字段,方法,方法的参数以及局部变量上. 1.元注解:作用是负责注解其他注解.Java5.0定义了4个标准的meta-annotati

Annotation自定义注解

前言: Sometimes there is no next time, no time-outs, no second chances; sometimes it's now or never. 对于注解来说,其实就是用来打标记用的,在别的地方可以根据特殊的标记得到标记的东西(属性.类.方法等),对于这大家应该非常熟悉了,很多第三方框架使用也巨多,比如Dagger.ButterKnife等等,这些第三方注解框架,省略了findviewById(),不禁要问,难道真的不需要这行findviewB

annotation 自定义注解

1 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface MyA

hibernate validation内置注解及自定义注解

1 Bean Validation 中内置的 constraint 2 @Null 被注释的元素必须为 null 3 @NotNull 被注释的元素必须不为 null 4 @AssertTrue 被注释的元素必须为 true 5 @AssertFalse 被注释的元素必须为 false 6 @Min(value) 被注释的元素必须是一个数字,其值必须大于等于指定的最小值 7 @Max(value) 被注释的元素必须是一个数字,其值必须小于等于指定的最大值 8 @DecimalMin(value)