`

用JDK中Annotation写的一个注解

    博客分类:
  • J2SE
阅读更多

先新建一个Annotation工程

package com.lbx.annotation;

/**
 * 定义注解
 */

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

@Retention(value=RetentionPolicy.RUNTIME)   //声明注解的保留期限
@Target(ElementType.METHOD)                 //声明注解的使用范围
public @interface NeedTest {
	
	boolean value() default true;
	
}

 

 

在程序中使用自己定义的注解

package com.lbx.service;

import com.lbx.annotation.NeedTest;

/**
 * 使用注解
 * @author Administrator
 *
 */

public class ForumService {

	@NeedTest(value = true)
	public void deleteForum(int id){
		System.out.println("删除Forum:   " + id);
	}
	
	@NeedTest(value=false)
	public void deleteTopic(int id){
		System.out.println("删除Topic:   " + id);
	}
	
}

 

 

 

测试

package com.lbx.test;

import java.lang.reflect.Method;

import com.lbx.annotation.NeedTest;
import com.lbx.service.ForumService;

/**
 * 测试注解
 * @author Administrator
 *
 */

public class TestAnnotation {

	public static void main(String[] args) {
		Class c = ForumService.class;    //获得相应的Class对象
		//先要得到目标对象的Method数组
		Method[] methods = c.getDeclaredMethods();
		System.out.println(methods.length);
		for (int i = 0; i < methods.length; i++) {
			Method method = methods[i];
			NeedTest n = method.getAnnotation(NeedTest.class);
			if(n!=null){
				if(n.value()){
					System.out.println(method.getName() + "()需要测试");
				}else{
					System.out.println(method.getName() + "()不需要测试");
				}
			}
		}
	}
	
}

 

分享到:
评论

相关推荐

    JDK8注解应用例子

    5. `@Repeatable`(JDK8新增):允许一个注解在同一位置被多次使用。之前版本中,如果需要多次使用同一注解,需要自定义容器注解,而现在可以直接通过此元注解实现。 二、预定义注解 JDK8对一些预定义注解进行了...

    Annotation(注解)详细教程,jdk新特性

    Annotation(注解)是Java编程语言的一个重要特性,自JDK 1.5引入以来,逐渐成为编写可维护和可扩展代码的关键工具。注解提供了一种方式,使得程序员可以在代码中添加元数据(metadata),这些数据不直接影响代码...

    web服务开发 使用jdk6注解 注解分析

    `@WebService` 是 Java Web Services (JAX-WS) 中的一个核心注解,用于声明一个类或接口作为 Web 服务。当一个类被 `@WebService` 注解时,这个类就会被自动包装成一个 Web 服务。例如: ```java @WebService...

    JDK1.5的annotation

    描述中的“博文链接:https://justshare.iteye.com/blog/431424”可能是一个讨论或教程,详细解释了如何使用JDK 1.5的注解。虽然具体内容无法在这里提供,但从链接我们可以推断,该博客可能涵盖了以下主题: 1. **...

    Annotation--学习:JDK内建Annotation

    要创建自定义注解,需要定义一个注解类型,类似于接口,但使用`@interface`关键字。例如: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotation { ...

    JDK5.0 Java Annotation 介绍(ppt)

    2. **Annotation 处理工具**:Annotation Processing Tool (apt) 是一个用于处理 Annotation 的工具,它可以分析源代码中的 Annotation,并根据这些信息生成相应的代码或文件。 三、Annotation 使用方法 1. **类型...

    Java自定义注解Annotation的使用

    自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,使得开发变得更加简洁高效。随着时间的推移,这种“零...

    Java annotation (JDK5)

    Java注解(JDK5)是Java编程语言中的一个重要特性,自Java 5版本开始引入。注解(Annotation)提供了一种元数据的形式,允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、JVM或者专门的处理工具在编译时或...

    详解JDK 5 Annotation 注解之@Target的用法介绍

    本篇文章将深入探讨JDK 5中注解的一个关键特性——`@Target`的用法。 `@Target` 是一个元注解,用于定义自定义注解的应用范围。元注解是指那些用于标注其他注解的注解。`@Target` 通过 `java.lang.annotation....

    举例讲解JDK注解的使用和自定义注解的方法

    然后,我们可以使用反射来判断一个方法上是否有@MyTest注解: ```java Method method = ...; // 获取方法对象 if (method.isAnnotationPresent(MyTest.class)) { // ... 如果该方法上有@MyTest注解 } ``` 从而...

    Java 注解Annotation实例上手文档

    3. `@MySingleElementAnnotation`:单个元素的注解,只包含一个名为`value`的成员变量,常用于简化注解的使用。 #### 四、注解的生命周期与作用域 注解的生命周期由`@Retention`元注解控制,可以是: - `SOURCE`...

    java Annotation 注解

    例如,如果你只想让一个注解用于方法,可以这样定义: ```java @Target(ElementType.METHOD) public @interface MyMethodAnnotation {} ``` 如果没有指定`@Target`,则该注解可以用于任何元素。 除了JDK自带的标准...

    注解annotation的详细介绍

    注解(Annotation)是Java语言中的一个重要特性,自JDK5开始引入,它提供了一种安全的方式,使得程序员可以向源代码中添加元数据(metadata)。元数据是关于数据的数据,它并不改变程序运行方式,但可以被编译器、...

    JDK5.0-Java Annotation 介绍

    Java Annotation(注解)是自JDK 5.0开始引入的一种元数据,它提供了一种安全、非侵入式的方式来向编译器、虚拟机或者其他的工具提供关于代码的信息。这种信息可以用来进行编译时检查、运行时处理、代码生成等。注解...

    511.509.JAVA基础教程_枚举类与注解-jdk8新特性:类型注解(511).rar

    例如,创建一个简单的注解来记录方法执行时间: ```java import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang....

    hibernate _annotation 注解编程

    ### Hibernate Annotation注解编程知识点详解 #### 一、概述与设置环境 - **概述**:Hibernate 是一个流行的 Java 持久层框架,它提供了一种面向对象的方式来处理数据库操作。Hibernate 支持多种元数据定义方式,...

    JDK1.8_中文有道翻译版.zip

    类型注解是JDK1.8的一个增强,允许在类型使用处(如变量声明、方法签名等)添加注解,增强了静态分析工具和编译器的能力。 总的来说,JDK1.8不仅为Java开发者带来了更高效的编码体验,还增强了Java平台在各种应用...

    JDK1.5 注解

    下面是一个使用`MyTag`注解的例子: ```java import tiger.annotation.MyTag; public class TagTest { @MyTag(name = "MyTag", age = 1) public void testTag() { // 方法体 } } ``` 在这个例子中,`testTag`...

Global site tag (gtag.js) - Google Analytics