A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如果构造方法私有,那如何通过反射得到Constructor??
在老师的视频里,只有对私有成员变量的处理,没有对私有构造方法的处理。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1 暴力反射可以使任何私有成员属性和方法的变.

查看全部评分

4 个回复

倒序浏览
我不说暴力反射
回复 使用道具 举报
啷个里个郞 发表于 2012-5-12 16:36
我不说暴力反射

暴力反射??那个不是针对私有成员变量的吗?
回复 使用道具 举报
用getDeclaredConstructor(Class<?>... parameterTypes)
然后用Constructor父类的setAccessible(true)---就是暴力反射
例如:
import java.lang.reflect.*;
public class SecertExercise {

        public static void main(String[] args)throws Exception  {
             Constructor constructor =  Abc.class.getDeclaredConstructor(String.class,int.class);
                //设置对访问权限的释放
                constructor.setAccessible(true);
                Abc abc =(Abc)constructor.newInstance("689",12);
                abc.run();
}
}
class Abc{
String name ;
int age;
private Abc(String name,int age){
this.name=name;
this.age=age;
}
void run(){
System.out.println("haha");
}
}

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
zlghff 发表于 2012-5-12 16:59
用getDeclaredConstructor(Class... parameterTypes)
然后用Constructor父类的setAccessible(true)---就是 ...

哦,谢谢了,了解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马