黑马程序员技术交流社区
标题:
反射得到内部类的私有方法出问题
[打印本页]
作者:
李兴
时间:
2014-1-3 20:24
标题:
反射得到内部类的私有方法出问题
本帖最后由 李兴 于 2014-1-4 18:12 编辑
通过反射得到内部类的私有方法,编译失败,求解
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
class DemoA
{
public static void main(String[] args) throws Exception
{
Class classB = DemoA.DemoB.class;
Constructor constructor = classB.getDeclaredConstructor(null);//这行报错
DemoB db = (DemoB) constructor.newInstance(null);
Method method = classB.getDeclaredMethod("sop", null);
method.setAccessible(true);
method.invoke(db, null);
}
class DemoB
{
private DemoB(){}
private void sop(){
System.out.println("DemoB");
}
}
}
复制代码
该怎样改
作者:
松毛
时间:
2014-1-3 21:07
构造方法需要加上访问权限。
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
public class DemoA
{
public static void main(String[] args) throws Exception
{
Class classB = DemoB.class;
Constructor constructor = classB.getDeclaredConstructor();//这行报错
constructor.setAccessible(true); //在这里加上访问权限
DemoB db = (DemoB)constructor.newInstance();
Method method = classB.getDeclaredMethod("sop", null);
method.setAccessible(true);
method.invoke(db, null);
}
}
class DemoB
{
private DemoB(){}
private void sop(){
System.out.println("DemoB");
}
}
复制代码
作者:
李兴
时间:
2014-1-3 21:26
松毛 发表于 2014-1-3 21:07
构造方法需要加上访问权限。
谢谢你 运行通过了 我得注意细节了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2