一.
我们定义的所有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接口
分享到:
相关推荐
看到那些要积分的很不酸,发布免费版本。 第1部分(2个程序包) HelloWorld.zip 01.Java入门样例HelloWorld demo.zip 03.Eclipse入门...javaannotation.zip 28.Java注释符编程 javafeature.zip 29.Java5.0语言新特性
2. **第二章:Java环境配置** - 如何安装JDK - 设置JAVA_HOME环境变量 - 编写Hello World程序 3. **第三章:基本语法** - 变量、数据类型(基本类型与引用类型) - 运算符(算术、比较、逻辑、位运算符) - ...
"JAVA语言程序设计补充材料及例题代码"表明这是一份与Java编程相关的学习资源,特别是针对《JAVA语言程序设计》第八版。这本书通常会提供详细的理论讲解、编程实践和习题解答,帮助读者掌握Java编程的基础和高级概念...
《Java 21天学通Java》是一本专为初学者设计的Java编程教程,它以易懂且系统的方式引导读者快速掌握Java编程基础。在21天的学习计划中,通常会涵盖Java语言的核心概念、语法结构以及实际应用,旨在帮助初学者在短...
本卷是第二部分,主要关注Java的高级特性,包括并发、网络、图形用户界面(GUI)、XML处理、数据库访问、反射、注解、Java集合框架的高级用法等。以下是这些关键知识点的详细介绍: 1. **并发**:Java提供了一套...
《21天自学Java6(第五版)》是一本针对初学者设计的Java编程教材,旨在帮助读者在短时间内掌握Java编程基础。这本书的源码包含了书中各个章节的实例程序,以便读者可以动手实践,加深对Java语言的理解。下面将详细...
《Java语言程序设计第10版(基础篇)》是一本经典的Java编程教材,它深入浅出地介绍了Java编程的基础知识。本压缩包包含了该书的课后习题答案源码,是学习者检验理解、巩固知识的重要参考资料。值得注意的是,这里的...
2. **环境配置**:学习Java的第一步是安装Java Development Kit (JDK),并配置好环境变量,包括JAVA_HOME、PATH和CLASSPATH。 3. **语法基础**:Java的基础语法包括数据类型(如整型、浮点型、字符型和布尔型)、...
看到很多人都分卷打包的,下载很是不方便,还浪费积分,我就整合压缩打包到一个包里面,里面包含全部源码 源码目录如下: ...javaannotation.zip 28.Java注释符编程 javafeature.zip 29.Java5.0语言新特性
习题解答06255.doc可能包含了书中第六章至第二十五章的习题答案,这些答案会涵盖以上提到的大部分知识点,通过对照解答,学习者可以检查自己的理解程度,找出不足并进行针对性的练习,从而更好地掌握Java编程。
在深入探讨Java编程语言与数据结构的第十一版(进阶版)的编程答案之前,首先需要理解这两个核心概念:Java编程语言和数据结构。Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现已被Oracle收购)在...
《21天学通Java(第6版)》是一本广受欢迎的Java编程入门教程,其源代码提供了丰富的实例和练习,旨在帮助读者在21天内掌握Java编程基础。这本书的目标是通过实践来教授Java语言的核心概念和技术,使初学者能够快速...
在Java核心技术系列书籍中,通常第二卷会着重介绍Java语言的高级特性,包括但不限于以下内容: 1. Java虚拟机(JVM)的工作原理和优化方法。 2. Java集合框架的高级应用,包括各类集合接口、类以及算法。 3. 输入...
以上知识点只是《Java核心技术++卷1++基础知识++原书第10版》中的冰山一角,全书涵盖了更多细节和高级主题,对于想要深入学习Java编程的开发者来说,是一本不可或缺的参考书籍。通过阅读和实践书中的例子,可以提升...
《Java程序设计实用教程(第二版)》是耿祥义和张跃平两位专家共同编著的一本经典Java学习教材,旨在帮助初学者和进阶者掌握Java编程的核心概念和技术。该书通过丰富的例题和上机实践模板,使得读者能够深入理解并...
【Java新手入门的30个基本概念】 Java作为一种广泛使用的编程语言,因其强大的跨平台...掌握这些基本概念是Java学习的第一步,随着经验的增长,深入理解它们的内在原理和实际应用场景将使你成为更出色的Java开发者。
【Java基础18共21页.pdf.zip】这个文件是一个压缩包,包含了关于Java编程语言基础知识的详细讲解,共有21页的内容。从标题来看,我们可以推测这份文档可能涵盖了Java编程语言的基础概念、语法和常见应用,对于初学者...
### 第二章:Java编程基础 1. **语法结构**:学习Java的注释、变量声明、数据类型(基本类型和引用类型)、运算符和控制流(如if语句、for循环和while循环)。 2. **类与对象**:理解面向对象编程的核心,包括类的...
【Java_day24上课资料.zip】是一个包含Java编程学习资源的压缩包,它可能是你在学习Java编程语言的第二十四天时用到的教学材料。这个压缩包可能包含了课件、代码示例、练习题以及可能的讲解视频链接。下面将详细讨论...
2. **Java环境配置**:学习Java的第一步是安装JDK(Java Development Kit)并设置环境变量,包括JAVA_HOME、PATH和CLASSPATH,确保编译器和运行时环境能够正常工作。 3. **基本语法**:包括数据类型(原始类型如int...