当前位置:  开发笔记 > 编程语言 > 正文

我可以使用反射发现Java类声明的内部类吗?

如何解决《我可以使用反射发现Java类声明的内部类吗?》经验,为你挑选了2个好方法。

在Java中,有没有办法使用JDK库来发现在另一个类中实现的私有类?或者我需要使用像asm这样的东西吗?



1> Jen S...:

Class.getDeclaredClasses() 是答案.



2> 小智..:
package com.test;

public class A {

    public String str;

    public class B {
        private int i;
    }
}
package com.test;

import junit.framework.TestCase;

public class ReflectAB extends TestCase {
    public void testAccessToOuterClass() throws Exception {
           final A a = new A();
           final A.B b = a.new B();
           final Class[] parent = A.class.getClasses();
           assertEquals("com.test.A$B", parent[0].getName());
           assertEquals("i" , parent[0].getDeclaredFields()[0].getName());
           assertEquals("int",parent[0].getDeclaredFields()[0].getType().getName());
           //assertSame(a, a2);
        }

}

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有