先新建一个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() + "()不需要测试");
}
}
}
}
}
分享到:
相关推荐
5. `@Repeatable`(JDK8新增):允许一个注解在同一位置被多次使用。之前版本中,如果需要多次使用同一注解,需要自定义容器注解,而现在可以直接通过此元注解实现。 二、预定义注解 JDK8对一些预定义注解进行了...
Annotation(注解)是Java编程语言的一个重要特性,自JDK 1.5引入以来,逐渐成为编写可维护和可扩展代码的关键工具。注解提供了一种方式,使得程序员可以在代码中添加元数据(metadata),这些数据不直接影响代码...
`@WebService` 是 Java Web Services (JAX-WS) 中的一个核心注解,用于声明一个类或接口作为 Web 服务。当一个类被 `@WebService` 注解时,这个类就会被自动包装成一个 Web 服务。例如: ```java @WebService...
描述中的“博文链接:https://justshare.iteye.com/blog/431424”可能是一个讨论或教程,详细解释了如何使用JDK 1.5的注解。虽然具体内容无法在这里提供,但从链接我们可以推断,该博客可能涵盖了以下主题: 1. **...
要创建自定义注解,需要定义一个注解类型,类似于接口,但使用`@interface`关键字。例如: ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyAnnotation { ...
2. **Annotation 处理工具**:Annotation Processing Tool (apt) 是一个用于处理 Annotation 的工具,它可以分析源代码中的 Annotation,并根据这些信息生成相应的代码或文件。 三、Annotation 使用方法 1. **类型...
自从JDK 1.5引入了注解这一特性以来,它已经成为Java开发中的一个重要组成部分。注解最初是为了推动EJB 3.0的普及和发展而设计的,其目的是减少配置文件的使用,使得开发变得更加简洁高效。随着时间的推移,这种“零...
Java注解(JDK5)是Java编程语言中的一个重要特性,自Java 5版本开始引入。注解(Annotation)提供了一种元数据的形式,允许程序员在代码中嵌入额外的信息,这些信息可以被编译器、JVM或者专门的处理工具在编译时或...
本篇文章将深入探讨JDK 5中注解的一个关键特性——`@Target`的用法。 `@Target` 是一个元注解,用于定义自定义注解的应用范围。元注解是指那些用于标注其他注解的注解。`@Target` 通过 `java.lang.annotation....
JDK文档会介绍标准注解(如@Override、@Deprecated)以及自定义注解的创建和使用。 **7. 并发编程** Java提供了丰富的并发工具,如ExecutorService、Semaphore、CyclicBarrier等,以支持高效的多线程编程。文档会...
然后,我们可以使用反射来判断一个方法上是否有@MyTest注解: ```java Method method = ...; // 获取方法对象 if (method.isAnnotationPresent(MyTest.class)) { // ... 如果该方法上有@MyTest注解 } ``` 从而...
3. `@MySingleElementAnnotation`:单个元素的注解,只包含一个名为`value`的成员变量,常用于简化注解的使用。 #### 四、注解的生命周期与作用域 注解的生命周期由`@Retention`元注解控制,可以是: - `SOURCE`...
例如,如果你只想让一个注解用于方法,可以这样定义: ```java @Target(ElementType.METHOD) public @interface MyMethodAnnotation {} ``` 如果没有指定`@Target`,则该注解可以用于任何元素。 除了JDK自带的标准...
注解(Annotation)是Java语言中的一个重要特性,自JDK5开始引入,它提供了一种安全的方式,使得程序员可以向源代码中添加元数据(metadata)。元数据是关于数据的数据,它并不改变程序运行方式,但可以被编译器、...
Java Annotation(注解)是自JDK 5.0开始引入的一种元数据,它提供了一种安全、非侵入式的方式来向编译器、虚拟机或者其他的工具提供关于代码的信息。这种信息可以用来进行编译时检查、运行时处理、代码生成等。注解...
例如,创建一个简单的注解来记录方法执行时间: ```java import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang....
### Hibernate Annotation注解编程知识点详解 #### 一、概述与设置环境 - **概述**:Hibernate 是一个流行的 Java 持久层框架,它提供了一种面向对象的方式来处理数据库操作。Hibernate 支持多种元数据定义方式,...
类型注解是JDK1.8的一个增强,允许在类型使用处(如变量声明、方法签名等)添加注解,增强了静态分析工具和编译器的能力。 总的来说,JDK1.8不仅为Java开发者带来了更高效的编码体验,还增强了Java平台在各种应用...