`
lgywindows
  • 浏览: 9983 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

反射的基础(二):构造器类的使用

    博客分类:
  • java
阅读更多
上一章节 http://lgywindows.iteye.com/blog/1797232
反射的本质:将类的各种属性(类的变量,类的方法,类所在的包名,类的构造器等)映射成相应的java类。用"一群类"去描述和操纵一个类。
类的反射之构造器类
一 通过构造器类(Constructor)获得指定类的构造器:
1 java.lang.reflect.Constructor[] cons = String.class.getConstructors();此句将返回所有的构造器方法
2 java.lang.reflect.Constructor con = String.class.getConstructor(new StringBuffer().getClass());此句将返回指定的构造器方法
二 当使用构造器类(Constructor)获得指定类的构造方法后就可以进行实例化操作,语法:
1 Class cls = Class.forName("java.lang.String");cls.newInstance();这实际上是一种捷径式写法
2 java.lang.reflect.Constructor con = String.class.getConstructor(new StringBuffer().getClass());
  String str = (String)con.newInstance(new StringBuffer("abcdefg"));这才是正常的调用程序
意义:可以在程序运行后动态的加载java类,再动态的得到类的构造器并进行初始化。
示范代码如下:
public class MyConstructor {
	public static void main(String[] args) throws Exception{
		java.lang.reflect.Constructor con = String.class.getConstructor(new StringBuffer().getClass());
		String str = (String)con.newInstance(new StringBuffer("abcdefg"));
		System.out.println(str.charAt(2));
	}
}

下一章节http://lgywindows.iteye.com/blog/1797326
分享到:
评论

相关推荐

    653.651.JAVA基础教程_反射-获取运行时类的构造器结构(653).rar

    当获取到一个类的Class对象后,就可以通过以下方式访问它的构造器: 1. `getConstructors()`:此方法返回一个`Constructor[]`数组,包含类中所有的公共构造器。这些构造器按照声明顺序排列。 2. `...

    658.656.JAVA基础教程_反射-调用运行时类中的指定构造器(658).rar

    在"658.656.JAVA基础教程_反射-调用运行时类中的指定构造器(658).rar"这个压缩包文件中,我们很显然会学到如何通过反射来调用Java类的构造器。下面将详细解释Java反射和如何使用它来调用构造器。 1. **反射的概念**...

    Java反射机制的使用和学习方法

    - **运行时检查**:可以在运行时检查类的结构,包括方法、字段、构造器等信息。 - **运行时动态调用方法**:即使在编写代码时不知道具体的方法名,也可以在运行时动态调用。 - **访问私有成员**:通过反射,可以...

    Java反射机制学习(二)

    如果有参数的构造器,我们需要使用`getDeclaredConstructor()`或`getConstructor()`来获取指定的构造器,然后调用`newInstance()`传递参数。 4. **访问字段**: 反射可以让我们读取和修改私有字段。`Field`类代表...

    Java反射实例源码

    如果有参数,需要使用`Constructor`类的`getDeclaredConstructor()`或`getConstructor()`方法获取构造器,然后调用`newInstance()`。 3. **访问字段**:通过`Field`类,可以获取类的私有、公共等任何可见性级别的...

    Java反射总结:入门进阶到使用

    2. 获取构造器:`Constructor<?> constructor = clz.getConstructor(参数类型列表)`。 3. 创建对象:`Object obj = constructor.newInstance(参数列表)`。 4. 获取方法:`Method method = clz.getMethod(方法名, ...

    【IT十八掌徐培成】Java基础第25天-01.反射基础.zip

    - `类名.class`: 直接使用类的`.class`属性获取其`Class`对象。 - `对象.getClass()`: 对象的`getClass()`方法返回该对象的`Class`对象。 2. 创建对象: - `newInstance()`: 调用无参构造器创建对象,要求类有...

    JAVA反射机制的入门代码

    当你在程序运行时获取到一个类的`Class`对象,你就可以获取该类的所有信息,包括类名、构造器、方法、字段等。这通常通过`Class.forName()`方法完成,传入类的全限定名即可。 在提供的"ReflectDemo"中,可能包含...

    java学习——java中的反射学习笔记.rar_java 反射

    3. 访问构造器:`Constructor`类代表类的构造器。`getConstructors()`获取公共构造器,`getDeclaredConstructors()`获取所有构造器。 三、反射的优势与风险 优势: 1. 动态性:在运行时可以动态创建对象和调用方法...

    大学课程讲义-Java基础-反射.pptx

    Constructor、Method、Field类是Java反射机制中的三个重要类,用于描述类的构造器、方法和字段。 * Constructor类:用于描述类的构造器,提供了newInstance()方法,可以创建类的实例。 * Method类:用于描述类的...

    java 反射实例,大量注释,简单易懂

    - 使用`Constructor`的`newInstance()`方法可以动态创建类的对象,即使这个类没有公开的构造器。 3. **动态调用方法**: - `Method`类的`getMethods()`返回所有公共方法,`getMethod(String name, Class<?>... ...

    JAVA反射详细讲解

    1. 类与对象的元数据:在Java中,每个类都由Class对象表示,这个对象包含了关于类的所有信息,如类名、构造器、方法、字段等。通过Class类,我们可以获取到运行时的类信息。 2. 获取Class对象:有三种方式获取Class...

    mirror,Java反射API上的简单DSL层.zip

    4. 构造器(Constructor):`Constructor`类代表类的构造器。`Class.getDeclaredConstructors()`获取构造器,`newInstance()`用于创建新对象。 二、mirror DSL层介绍 "mirror"项目在Java反射API之上构建了一个DSL...

    java反射,获取所有属性、方法以及List集合类

    一旦我们有了`Class`对象,就可以进一步获取类的属性(Fields)、方法(Methods)和构造器(Constructors)。 1. 获取所有属性(Fields): 使用`getFields()`方法可以获取到类的所有public字段,如果需要获取包括...

    Java基础之-反射(非常重要)

    - `Constructor`类:代表类的构造器,用于创建类的新实例。 - `Method`类:表示类的方法,可以调用方法。 - `Field`类:代表类的字段或变量,可以访问和修改字段值。 5. **创建对象**: - 使用`Constructor.new...

    《剑指offer》Java基础-反射篇.pdf

    • 获取类中的变量(Field)可以使用 `getFields()` 或 `getDeclaredFields()`,方法(Method)使用 `getMethods()` 和 `getDeclaredMethods()`,构造器(Constructor)使用 `getConstructors()` 和 `...

    反射 从基础到精通 有实例

    如果类的构造器带有参数,可以使用`Constructor`类的`getDeclaredConstructor()`方法获取构造器并调用`newInstance()`。 2. **调用方法**:`Method`类代表了类的方法,`Class`对象的`getMethod()`或`...

    java反射源代码

    1. 构造器:`Constructor[] getConstructors()` 返回类的所有公共构造器,`Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)` 获取指定参数类型的私有或受保护的构造器。 2. 方法:`Method[] ...

    java反射Demo

    3. 获取构造器:`Constructor<?> getConstructor(Class<?>... parameterTypes)`,用于创建对象。 五、反射的使用场景 1. 动态代理:比如Spring AOP就是利用反射实现的动态代理,可以在不修改原有代码的情况下,为...

Global site tag (gtag.js) - Google Analytics