`
ziwuzu
  • 浏览: 53128 次
  • 性别: Icon_minigender_1
  • 来自: 长春
社区版块
存档分类
最新评论

注解初定义

阅读更多

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 SampleAnnotation { 
//注解名称是SampleAnnotation,需要用@interface定义注解
//方法
	String value();
}

 2. 使用

public class SampleAnnatationUser {
//这些值会被注解的value方法得到
	@SampleAnnotation("oh my god ,i put a value in it")
	public void use() {
		System.out.println("success,i use");
	}

	public void notUse() {
		System.out.println("fail,i am not use");
	}
}

 3.实现,无反射不注解

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class SampleMain {
	public static void main(String[] args) {
		SampleAnnatationUser sampleAnnatationUser = new SampleAnnatationUser();
		for (Method method : sampleAnnatationUser.getClass().getMethods()) {
			if (method.isAnnotationPresent(SampleAnnotation.class)) {
				try {
					SampleAnnotation  annotation = method.getAnnotation(SampleAnnotation.class);
					System.out.println(annotation.value());
					method.invoke(sampleAnnatationUser, null);
				} catch (IllegalArgumentException e) {
					e.printStackTrace();
				} catch (IllegalAccessException e) {
					e.printStackTrace();
				} catch (InvocationTargetException e) {
					e.printStackTrace();
				}
			}
		}
	}
}

 

 4.结果

oh my god ,i put a value in it
success,i use

 

分享到:
评论

相关推荐

    java注释规范文档

    - **方法注释**:位于方法定义之前。 例如: ```java /** * 一个类注释 */ public class DocTest { /** * 一个变量注释 */ public int i; /** * 一个方法注释 */ public void f() { // 方法体 } } ``...

    C语言注释规范.pdf

    * @int (*)() cmp 提供接口,让用户定义具体比较函数 * Return: int 返回元素的 index 值 * Limitation: 如果返回 -1,则代表不存在var 的元素 // 在函数的注释中,我们需要对函数的每个参数和返回值进行解释,同时...

    struts2.0 spring2.5 hibernate3.2 注解最新框架

    Struts2.0、Spring2.5和Hibernate3.2是经典的Java企业级开发框架,它们在2000年代末至2010年初广泛应用于构建大型Web应用程序。这三大框架的集成提供了完整的MVC(Model-View-Controller)架构,支持服务层和持久层...

    Essential C++(注释版)

    根据提供的标题“Essential C++(注释版)”和描述“Essential C++(注释版) 英文附中文注释”,我们可以推断出这是一个关于C++编程语言的学习资源,其中包含了对C++核心概念和技术的介绍,并且为了帮助中文读者更好地...

    XML Schema初窥

    【XML Schema初窥】 XML Schema 是一种XML文档结构定义语言,由W3C于1998年开始制定,2001年5月2日发布1.0版,2004年10月28日发布了修正版2.0。相比DTD(Document Type Definition),XML Schema提供了更加强大和...

    PSO粒子群算法万能matlab代码注释详细

    1. **初始化**: 首先,随机生成一个粒子群,每个粒子代表可能的解,并随机赋予初速度。 2. **速度与位置更新**: 在每一代迭代中,粒子根据以下公式更新速度和位置: - 速度更新公式:`v_{ij}[t+1] = w * v_{ij}[t] ...

    有详细注释的尝试用类来封装数据的菜鸟级windsock-sever

    同时也在代码中详细注释了自己学习时的一些适时的初浅认识。例如:用方法组织代码的一些菜菜菜菜菜菜鸟级的感觉----- 1、按照自己的思路,定义各个功能方法;2、进行控件的布局,并生成控件方法;3、在控件方法中...

    头歌Spring Boot初体验.rar

    这些文件可以定义环境变量,如数据库连接信息、服务器端口等。 6. **Spring Data JPA** 如果使用`spring-boot-starter-data-jpa`,Spring Boot将自动配置JPA和一个默认的数据源。可以轻松地与各种数据库(如MySQL...

    php考试题目,初级用户必备

    此符号通常用于注释或标识符。 - C. @. 此符号在PHP中用于错误抑制操作符。 - D. *. 此符号在PHP中没有特定的用途。 - **正确答案**:A。 **5. A。php语言中数组的定义使用()符号** - **选项分析**: - A. []...

    西门子828D 840Dsl数控程序PLC西门子数控程序中文注释,详细解释介绍 对于维修人员,或者想学习PLC编程的工程师,初

    这些注释可能涵盖了变量定义、程序段解释、故障处理策略等内容,使学习过程更为直观和高效。 "source"可能指的是源代码文件,这通常是PLC编程的核心部分,包含了实现各种功能的指令序列。通过查看和分析源代码,...

    JUnit4初体验

    在JUnit4中,我们可以使用`@Before`和`@After`注解来定义在每个测试方法执行前后的准备工作和清理工作。这对于初始化环境变量、创建对象或者清理资源等操作非常有用。另外,`@BeforeClass`和`@AfterClass`则用于在...

    易语言源码坚持初心记事本易语言源码.rar

    在"坚持初心记事本"中,我们能看到易语言的常用语句和结构,如流程控制、变量定义、函数调用等。通过分析源码,可以深入理解易语言的基本语法和编程逻辑。 2. **用户界面设计**: 记事本的界面通常由菜单栏、工具...

    EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程)

    2. **定义实体bean**: 使用EJB 3.0的注解,如@Entity,定义bean的类及其属性,并指定主键。 3. **配置持久化**: 配置persistence.xml文件,指定数据源和实体bean的信息。 4. **创建会话bean**: 使用@Stateless或@...

    jaxb与jpa初应用

    **JAXB与JPA初应用** Java Architecture for XML Binding (JAXB) 和 Java Persistence API (JPA) 是Java开发中的两个重要技术,主要用于处理XML数据和实现对象关系映射(ORM)。在本篇中,我们将深入探讨这两个技术...

    jersey+spring+mybatis框架初使用

    【jersey+spring+mybatis框架初使用】 在IT行业中,开发Web应用程序时,我们经常使用各种框架来简化工作流程并提高效率。本教程将引导初学者了解如何整合jersey、spring和mybatis这三个强大的开源框架,以实现基本...

    C语言学习初中级资料合集

    遵循一定的命名规则,编写清晰的注释,以及使用调试工具来查找和修复错误,都是成为一名优秀C程序员的必要技能。 "C语言学习初中级资料合集"应该包含了以上所有内容的相关教程、实例和练习题,通过系统学习和实践,...

    nutz 初体验

    《Nutz初体验:探索Java开发的利器》 在IT行业中,工具的选择往往对开发效率有着重大影响。今天,我们要探讨的是一个名为Nutz的Java框架,它以其轻量级、高效能和全面的特性,成为了众多开发者眼中的宝藏工具。通过...

    Hibernate初之单表映射学习例子

    3. **实体类设计**:讲解如何创建一个Java类作为数据库表的映射,包括使用`@Entity`注解标记实体类,`@Id`注解定义主键,以及其他字段的注解如`@Column`。 4. **XML映射文件**:解释Hibernate的Hibernate ...

    Spring Data JPA初使用 .doc

    - **Entity映射**:Spring Data JPA基于JPA(Java Persistence API),所以你需要使用@Entity注解来标记你的领域模型类,@Table指定表名,@Id标识主键字段,以及其他JPA注解(如@Column,@ManyToOne等)来定制字段的...

Global site tag (gtag.js) - Google Analytics