Java Constructor类简介说明
Constructor是一个位于java.lang.reflect包下的类, 它指某个类的构造方法 它用于定义所有构造函数的类
获取Constructor类对象的方法
getConstructors() | 获取类中的公共方法 |
getConstructor(Class[] params) | 获取类的特定构造方法,params参数指定构造方法的参数类型 |
getDeclaredConstructors() | 获取类中所有的构造方法(public、protected、default、private) |
getDeclaredConstructor(Class[] params) | 获取类的特定构造方法,params参数指定构造方法的参数类型 |
借助反射实例化一个“构造方法私有的类”
package com.java265.other; import java.lang.reflect.Constructor; import java.lang.reflect.Method; public class TestClass { public static void main(String[] args) throws Exception { Class clazz = Class.forName("com.java265.other.User"); Method method = clazz.getDeclaredMethod("setAge", int.class); method.setAccessible(true); Constructor c = clazz.getDeclaredConstructor(); c.setAccessible(true);// 设置访问权限 User u = (User) c.newInstance(); method.invoke(u, 78); System.out.println(u.getAge()); } } class User { private int age; private User() { } public int getAge() { return this.age; } private void setAge(int age) { this.age = age; } } -----运行以上代码,将输出以下信息--- 78
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。