Java之反射--8.2.1反射创建类的对象
2017-04-06 00:00
190 查看
//反射创建类的对象
package com.aowin.newInstance;
import java.lang.reflect.Constructor;
import com.aowin.getclass.Student;
//创建的类中如果有空参数的构造方法
//1.获取创建的类的Class对象
//2.调用Class类中的newInstance()方法
//创建的类中没有空参数的构造方法,或者要使用有参数的构造方法
//1.获取创建的类的Class对象
//2.获取Class对象表示类中的构造方法,
//3.根据权限,取消访问权限检查,通过Constructor类中的setAccessible(true)方法
//4.调用Constructor类中的newInstance(参数)方法
public class Test {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception, Exception {
//1.获取创建的类的Class对象
Class c = Class.forName("com.aowin.getclass.Student");
//2.
//如果Class对象表示的类中有空参数的构造方法,则可以使用Class类中的newInstance()方法
Object stu = c.newInstance();
System.out.println(stu);
//获取Class对象表示的类中的public修饰的构造方法,通过Class类中的getConstructor(参数)或getConstructors()
Constructor[] cons = c.getConstructors();
for(int i=0;i<cons.length;i++){
System.out.println(cons[i]);
}
//获取指定参数的构造方法
Constructor con = c.getConstructor(int.class); //获取int参数的构造方法,有多个参数用,隔开
//通过Constructor类中的newInstance(参数)来创建对象
Object obj2 = con.newInstance(17); //
System.out.println(obj2);
//获取Class对象表示类中所有的构造方法,通过Class类中的getDeclaredConstructors()方法
Constructor[] deCons = c.getDeclaredConstructors();
for(int i=0;i<deCons.length;i++){
System.out.println(deCons[i]);
}
//获取指定参数的所有权限的构造方法
Constructor deCon = c.getDeclaredConstructor(String.class,int.class);
//取消访问权限检查
deCon.setAccessible(true);
//通过Constructor类中的newInstance(参数)创建对象
Object obj3 = deCon.newInstance("张三",17);
System.out.println(obj3);
}
}
package com.aowin.newInstance;
import java.lang.reflect.Constructor;
import com.aowin.getclass.Student;
//创建的类中如果有空参数的构造方法
//1.获取创建的类的Class对象
//2.调用Class类中的newInstance()方法
//创建的类中没有空参数的构造方法,或者要使用有参数的构造方法
//1.获取创建的类的Class对象
//2.获取Class对象表示类中的构造方法,
//3.根据权限,取消访问权限检查,通过Constructor类中的setAccessible(true)方法
//4.调用Constructor类中的newInstance(参数)方法
public class Test {
public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, Exception, Exception {
//1.获取创建的类的Class对象
Class c = Class.forName("com.aowin.getclass.Student");
//2.
//如果Class对象表示的类中有空参数的构造方法,则可以使用Class类中的newInstance()方法
Object stu = c.newInstance();
System.out.println(stu);
//获取Class对象表示的类中的public修饰的构造方法,通过Class类中的getConstructor(参数)或getConstructors()
Constructor[] cons = c.getConstructors();
for(int i=0;i<cons.length;i++){
System.out.println(cons[i]);
}
//获取指定参数的构造方法
Constructor con = c.getConstructor(int.class); //获取int参数的构造方法,有多个参数用,隔开
//通过Constructor类中的newInstance(参数)来创建对象
Object obj2 = con.newInstance(17); //
System.out.println(obj2);
//获取Class对象表示类中所有的构造方法,通过Class类中的getDeclaredConstructors()方法
Constructor[] deCons = c.getDeclaredConstructors();
for(int i=0;i<deCons.length;i++){
System.out.println(deCons[i]);
}
//获取指定参数的所有权限的构造方法
Constructor deCon = c.getDeclaredConstructor(String.class,int.class);
//取消访问权限检查
deCon.setAccessible(true);
//通过Constructor类中的newInstance(参数)创建对象
Object obj3 = deCon.newInstance("张三",17);
System.out.println(obj3);
}
}
相关文章推荐
- 黑马程序员--Java基础加强--07.【反射创建对象 操作字段 调用方法的异同】【个人总结】
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- java反射创建对象
- java反射获取构造器以及调用构造器创建对象
- [Java]利用反射机制动态加载并创建包含参数的对象
- 关于java 反射 创建对象 调用 有参数 的 构造函数
- Android 在Java代码中设置style属性--使用代码创建ProgressBar对象(反射机制)
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- java反射创建工厂对象
- Java通过反射创建对象(带参数例子)
- protobuf在java应用中通过反射动态创建对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- 【java高级特性之反射】创建Class对象的三种方法
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- java通过暴力反射创建不可实例化类的对象实例
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- Java策略模式+反射动态创建对象