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
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


