`
roway
  • 浏览: 50644 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

第二十一:Java Annotation(中)

 
阅读更多

一.

我们定义的所有annotation都继承于java.lang.annotation.Annotation接口

二.

如果我们通过手工的方式来声明一个接口,让该接口继承Annotation接口,

那么我们定义的这个接口仅仅是一个普通的接口而已,与注解没有任何关系
public interface I extends Annotation......仅仅是定义一个接口,而不是注解

三.

java.lang.annotation.Annotation就是一个接口,它本身并不是注解

四.

介绍:Retention及RetentionPolicy与反射的结合在Annotation中的应用

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

@Retention(RetentionPolicy.RUNTIME)//编译程序将Annotation存储于class文件中,可由VM读取
public @interface MyAnnotation {
	String hello();
	String world();
}

public class MyTest {
	
	@MyAnnotation(hello="beijing",world="shanghai")
	@Deprecated
	@SuppressWarnings("unchecked")
	public void output(){
		System.out.println("output something");
	}
	
}

import java.lang.annotation.Annotation;
import java.lang.reflect.Method;

public class MyReflection {
	public static void main(String[] args) throws Exception {
		MyTest myTest = new MyTest();

		Class<MyTest> c = MyTest.class;

		Method method = c.getMethod("output", new Class[] {});

		if (method.isAnnotationPresent(MyAnnotation.class)) {// 判断此注解是否存在此元素(方法)上
			method.invoke(myTest, new Object[] {});// 执行指定对象上的方法
			// 获取指定元素(方法)上注解(返回指定的注解或者返回null)
			MyAnnotation myAnnotation = method
					.getAnnotation(MyAnnotation.class);

			String hello = myAnnotation.hello();// 获取注解的属性值
			String world = myAnnotation.world();

			System.out.println(hello);
			System.out.println(world);
		}
		Annotation[] annotations = method.getAnnotations();// 返回此元素上所有的注解
		for (Annotation annotation : annotations) {
			// 返回此注解的注解类型
			System.out.println(annotation.annotationType().getName());
		}
	}
}


五.

Class Constructor Field Method Package等类别,都实现了AnnotatedElement接口


分享到:
评论

相关推荐

    Java高手真经(编程基础卷)光盘全部源码 免积分

    看到那些要积分的很不酸,发布免费版本。 第1部分(2个程序包) HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门...javaannotation.zip 28.Java注释符编程 javafeature.zip 29.Java5.0语言新特性

    Java语言程序设计基础篇

    2. **第二章:Java环境配置** - 如何安装JDK - 设置JAVA_HOME环境变量 - 编写Hello World程序 3. **第三章:基本语法** - 变量、数据类型(基本类型与引用类型) - 运算符(算术、比较、逻辑、位运算符) - ...

    JAVA语言程序设计补充材料及例题代码

    "JAVA语言程序设计补充材料及例题代码"表明这是一份与Java编程相关的学习资源,特别是针对《JAVA语言程序设计》第八版。这本书通常会提供详细的理论讲解、编程实践和习题解答,帮助读者掌握Java编程的基础和高级概念...

    Java 21天学通java

    《Java 21天学通Java》是一本专为初学者设计的Java编程教程,它以易懂且系统的方式引导读者快速掌握Java编程基础。在21天的学习计划中,通常会涵盖Java语言的核心概念、语法结构以及实际应用,旨在帮助初学者在短...

    Core Java Volume II--Advanced Features(10th) Java核心技术第10版 第二卷 英文版

    本卷是第二部分,主要关注Java的高级特性,包括并发、网络、图形用户界面(GUI)、XML处理、数据库访问、反射、注解、Java集合框架的高级用法等。以下是这些关键知识点的详细介绍: 1. **并发**:Java提供了一套...

    21天自学java6(第五版)源码

    《21天自学Java6(第五版)》是一本针对初学者设计的Java编程教材,旨在帮助读者在短时间内掌握Java编程基础。这本书的源码包含了书中各个章节的实例程序,以便读者可以动手实践,加深对Java语言的理解。下面将详细...

    Java语言程序设计第10版(基础篇)课后题答案

    《Java语言程序设计第10版(基础篇)》是一本经典的Java编程教材,它深入浅出地介绍了Java编程的基础知识。本压缩包包含了该书的课后习题答案源码,是学习者检验理解、巩固知识的重要参考资料。值得注意的是,这里的...

    21天学java培训笔记和代码

    2. **环境配置**:学习Java的第一步是安装Java Development Kit (JDK),并配置好环境变量,包括JAVA_HOME、PATH和CLASSPATH。 3. **语法基础**:Java的基础语法包括数据类型(如整型、浮点型、字符型和布尔型)、...

    Java高手真经(编程基础卷)光盘全部源码

    看到很多人都分卷打包的,下载很是不方便,还浪费积分,我就整合压缩打包到一个包里面,里面包含全部源码 源码目录如下: ...javaannotation.zip 28.Java注释符编程 javafeature.zip 29.Java5.0语言新特性

    Java大学实用教程(第2版)[耿祥义等编著][习题解答]

    习题解答06255.doc可能包含了书中第六章至第二十五章的习题答案,这些答案会涵盖以上提到的大部分知识点,通过对照解答,学习者可以检查自己的理解程度,找出不足并进行针对性的练习,从而更好地掌握Java编程。

    JAVA编程语言和数据结构第十一版 进阶版 编程答案

    在深入探讨Java编程语言与数据结构的第十一版(进阶版)的编程答案之前,首先需要理解这两个核心概念:Java编程语言和数据结构。Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现已被Oracle收购)在...

    [21天学通Java(第6版)]_源代码

    《21天学通Java(第6版)》是一本广受欢迎的Java编程入门教程,其源代码提供了丰富的实例和练习,旨在帮助读者在21天内掌握Java编程基础。这本书的目标是通过实践来教授Java语言的核心概念和技术,使初学者能够快速...

    java核心技术卷二

    在Java核心技术系列书籍中,通常第二卷会着重介绍Java语言的高级特性,包括但不限于以下内容: 1. Java虚拟机(JVM)的工作原理和优化方法。 2. Java集合框架的高级应用,包括各类集合接口、类以及算法。 3. 输入...

    Java核心技术++卷1++基础知识++原书第10版--中文版扫描--带书签已OCR

    以上知识点只是《Java核心技术++卷1++基础知识++原书第10版》中的冰山一角,全书涵盖了更多细节和高级主题,对于想要深入学习Java编程的开发者来说,是一本不可或缺的参考书籍。通过阅读和实践书中的例子,可以提升...

    《Java程序设计实用教程(第二版)》例题及上机模板源码

    《Java程序设计实用教程(第二版)》是耿祥义和张跃平两位专家共同编著的一本经典Java学习教材,旨在帮助初学者和进阶者掌握Java编程的核心概念和技术。该书通过丰富的例题和上机实践模板,使得读者能够深入理解并...

    Java新手入门的30个基本概念.doc

    【Java新手入门的30个基本概念】 Java作为一种广泛使用的编程语言,因其强大的跨平台...掌握这些基本概念是Java学习的第一步,随着经验的增长,深入理解它们的内在原理和实际应用场景将使你成为更出色的Java开发者。

    Java基础18共21页.pdf.zip

    【Java基础18共21页.pdf.zip】这个文件是一个压缩包,包含了关于Java编程语言基础知识的详细讲解,共有21页的内容。从标题来看,我们可以推测这份文档可能涵盖了Java编程语言的基础概念、语法和常见应用,对于初学者...

    JAVA程序设计入门教程

    ### 第二章:Java编程基础 1. **语法结构**:学习Java的注释、变量声明、数据类型(基本类型和引用类型)、运算符和控制流(如if语句、for循环和while循环)。 2. **类与对象**:理解面向对象编程的核心,包括类的...

    Java_day24上课资料.zip

    【Java_day24上课资料.zip】是一个包含Java编程学习资源的压缩包,它可能是你在学习Java编程语言的第二十四天时用到的教学材料。这个压缩包可能包含了课件、代码示例、练习题以及可能的讲解视频链接。下面将详细讨论...

    Java知识框架

    2. **Java环境配置**:学习Java的第一步是安装JDK(Java Development Kit)并设置环境变量,包括JAVA_HOME、PATH和CLASSPATH,确保编译器和运行时环境能够正常工作。 3. **基本语法**:包括数据类型(原始类型如int...

Global site tag (gtag.js) - Google Analytics