1) 要想使用反射,首先需要获得待处理类或对象所对应的Class对象
2) 获取某个类或某个对象所对应的Class对象的常用的3种方式:
1.使用Class类的静态方法forName:Class.forName("java.lang.String");
2.使用类的.class语法:String.class;
3.使用对象的getClass()方法:String s = "aa"; Class<?> clazz = s.getClass();
3) 若想通过类的不带参数的构造方法来生成对象,有两种方式:
1.先获得Class对象,然后通过该Class对象的newInstance()方法直接生成即可:
Class<?> classType = String.class;
Object obj = classType.newInstance();
2.先获得Class对象,然后通过该对象获得对应的Constructor对象,再通过该Constructor对象的newInstance()方法生成:
Class<?> classType = Customer.class;
Constructor cons = classType.getConstructor(new Class[]{});
Object obj = cons.newInstance(new Object[]{});
4) 若想通过类的带参数的构造方法生成对象,只能使用下面这一种方式:
Class<?> classType = Customer.class;
Constructor cons = classType.getConstructor(new Class[]{String.class, int.class});
Object obj = cons.newInstance(new Object[]{"hello", 3});
5)Integer.TYPE和Integer.class的区别
Integer.TYPE返回的是int,而Integer.class返回的是Integer类所对应的Class对象。
6) 枚举的继承类和成员类型:
枚举(Enum):我们所定义的每个枚举类型都继承自java.lang.Enum类,
枚举中的每个成员默认都是public static final的。
7) 枚举的类型确定简要说明:
而每个枚举的成员其实就是您定义的枚举类型的一個实例(Instance)。
换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。
在运行期间无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。
8) 注解的常用标识:
1.Override注解表示子类要重写(override)父类的对应方法。
2.Deprecated注解表示方法是不建议被使用的。
3.SuppressWarnings注解表示抑制警告。
9) 自定义注解的简要说明:
当注解中的属性名为value时,在对其赋值时可以不指定属性的名称而直接写上属性值即可;
除了value以外的其他值都需要使用name=value这种赋值方式,即明确指定给谁赋值。
10) 创建注解时的注意简要说明:
使用@interface关键字定义一个注解时,该注解隐含地继承了java.lang.annotation.Annotation接口;
如果定义了一个接口,并且让该接口继承自Annotation,那么我们所定义的接口依然还是接口而不是注解;
Annotation本身是接口而不是注解。
分享到:
相关推荐
通过8个demo,你可以逐步深入理解Java反射机制,从简单的获取类信息,到创建对象,调用方法,访问字段,再到处理注解和泛型,全方位掌握这一强大的工具。每个demo都应该设计为解决一个特定的问题,例如如何动态调用...
Java反射机制是Java编程语言中一个强大的特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用方法以及...
Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查和操作类、对象、字段和方法。在本教程中,我们将深入探讨Java反射机制的核心概念、功能、API以及应用场景。 **3.1 应用场景** 反射机制在...
以下是对Java反射机制应用实例的详细解释: 1. **获取类信息**:使用`Class`类的`forName()`方法可以获取到任何类的`Class`对象,例如`Class<?> clazz = Class.forName("全限定类名");`。这样我们就能获取到该类的...
Java反射机制是Java编程语言中的一个核心特性,它允许运行时动态访问和修改类的信息,包括类名、方法、属性等。在Java中,反射机制主要用于以下方面: 1. **运行时类型检查**:在程序运行过程中,可以使用反射获取...
在Java编程语言中,枚举(Enum)和注解(Annotation)是两种非常重要的特性,它们分别用于定义固定的常量集合和提供元数据信息。以下是对这两个概念的详细说明: **一、枚举类** 1. **定义**: - 自定义枚举类:...
3. 反射获取注解:通过Java反射API获取注解信息。例如,以下代码展示了如何获取类上的注解: ```java MyClass myClass = new MyClass(); MyClassAnnotation classAnnotation = myClass.getClass().getAnnotation...
总结来说,枚举类和注解是Java中两个强大的特性,枚举类提供了一种规范的方式来定义和使用常量,而注解则为代码提供了元数据,用于代码的管理和自动化处理。熟练掌握这两个概念,能够提高代码质量,增强可维护性和可...
Java反射机制是Java语言的一个重要特性,它允许程序在运行时动态地获取类的信息并创建对象,甚至可以访问私有成员。在Android开发中,反射机制有着广泛的应用,尤其是在处理框架内部逻辑、插件化开发、API兼容性等...
* RetentionPolicy.RUNTIME:注解在运行时也保留,并可以被反射机制读取。 @Retention 的作用是指定注解在哪个阶段被保留,例如在源代码中、在字节码中或在运行时。 2.@Target @Target 用于指定注解可以应用于...
Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时检查并操作类、接口、对象等的内部信息。这一机制使得开发者能够在运行时动态地获取类的信息,并能够创建和调用类的对象,无需在编译时就确定具体...
Java注解(Annotation)是Java语言提供的一种元数据机制,它允许程序员在源代码的各个元素(如类、方法、变量等)上添加信息。这些信息可以被编译器或运行时环境用来验证代码、生成代码、配置应用程序,或者提供其他...
然后,通过Java反射API,可以获取到这些注解信息,进行相应的处理。 例如,`@Override`注解告诉编译器,被注解的方法应该重写其父类的方法。如果找不到匹配的父类方法,编译器将报错。而`@Deprecated`注解则会在...
默认情况下,枚举是可序列化的,但也可以通过在枚举类上添加`@java.io.Serializable`注解来显式控制。 10. **枚举与反射** 通过反射,我们可以获取枚举类的所有常量,如`Class.getEnumConstants()`。 11. **枚举...
本文介绍了一种利用Java中的注解和反射技术来实现自定义验证工具的方法,该方法可以极大地提高代码的灵活性和可维护性。 #### 二、自定义验证工具设计思路 ##### 2.1 总体设计 本验证工具的核心思想是通过定义一...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用...在分析Java反射源码时,可以更深入地了解其内部实现机制,提升对Java平台的理解。
2. **运行时注解**:这些注解不仅在编译时处理,而且在运行时也可以通过反射机制访问,例如`@Autowired`在Spring框架中用于依赖注入。 3. **源码注解**:这种注解只在源码阶段有效,编译完成后不会保留,主要用于...
总结来说,Java中的枚举类是一种强大的工具,可以用来定义固定集合的常量,并且可以实现接口和使用注解来增强功能。通过学习和熟练掌握枚举类的使用,开发者可以编写出更加清晰、可维护的代码。
Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...
Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。这一机制的核心在于Java.lang.reflect包,它提供了Class、Constructor、Method、Field等一系列类,使得我们...