Java Annotation: 自定义注解与getClass()方法的应用

需积分: 18 4 下载量 140 浏览量 更新于2024-07-13 收藏 9.99MB PPT 举报
本资源是一份关于Java课程的PPT,主要讲解如何在Annotation(注解)中设置内容。首先,我们关注的是自定义Annotation `MyDefaultAnnotationSingleParam` 的定义。这个Annotation用于接收一个名为`value`的字符串参数,允许在创建类时为其设置默认值。例如,在`Demo` 类中,有两种方式应用这个Annotation:一是直接指定参数值为"李兴华",如`@MyDefaultAnnotationSingleParam("李兴华")`;二是通过`value` 属性提供值,如`@MyDefaultAnnotationSingleParam(value = "李兴华")`。 然后,课程内容转向了Java反射机制,这是Java编程中的一个重要概念。反射允许程序在运行时动态地获取和操作类、接口、字段和方法的信息。其中,`Object` 类的`getClass()` 方法是实现反射的基础,它返回一个`Class` 对象,提供了访问类的元数据的能力。`Class` 类是反射的核心,它包含了类的全名、构造器、字段和方法等信息。 具体到`getClassDemo01` 示例中,演示了如何通过实例化的对象调用`getClass()` 方法获取其所属类的名称,并展示了`Class` 类的几个常用方法: 1. `forName(String className)`:用于根据完全限定的类名(包名.类名)动态创建`Class` 对象,即使类还未被加载也能完成。 2. `getConstructors()`:返回一个类的所有构造函数数组,用于了解如何创建该类的对象。 3. `getDeclaredFields()` 和 `getFields()`:分别返回一个类及其父类中的所有字段(属性),但`getDeclaredFields()` 还包括了受保护(package-private)的字段。 4. `getMethods()`:返回一个类的所有公共和受保护的方法。 5. 其他可能还有其他辅助方法,如获取类的父类、接口、源码、注解等。 总结来说,这份PPT内容涵盖了Java Annotation的使用以及反射机制的基础概念,这对于理解和实现面向对象编程中的灵活性和动态性非常重要。通过这些知识,开发者可以在编译时期之外获取和操作程序的结构信息,提高了代码的灵活性和适应性。