package com.ch09_reflection;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
/**
* 通常来说,开发者使用一个new关键字就可以实例化一个类,也就是创建一个对象。那么使用反射机制能否创建一个对象呢?
* 答案是肯定的,这样的功能让对象的创建更加动态和灵活了。
* 对于默认的无参构造方法来说,反射机制可以使用Class类的newInstance()方法即可。
* 如果需要调用其他有参数的构造方法的时候,就需要使用java.lang.reflect.Constructor类,它代表了类的构造方法
* @author js
*
*/
class Student{
private String name;
private int age;
public Student() {
super();
}
public Student(String name,int age) {
super();
this.name = name;
this.age = age;
}
public String toString() {
return "stu:"+name+","+age;
}
}
public class BuildObject {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, NoSuchMethodException, SecurityException, IllegalArgumentException, InvocationTargetException {
//使用无参数的构造方法
Class<Student> clazz = Student.class;
Student student1 = clazz.newInstance();
System.out.println(student1);
//使用带参数的构造方法
Constructor<Student> constructor = clazz.getConstructor(String.class,int.class);
Student student2 = constructor.newInstance("zhangsan",89);
System.out.println(student2);
}
}
使用Java反射机制创建对象
最新推荐文章于 2024-04-25 13:57:09 发布