如何动态创建新的类实现一些接口并实例化



是否可以在Java中的运行时撰写新类?

这是什么意思?重新启动?编译器API?

我可以做

package tests;
public class TryReflection02 {
    interface A {
    }
    public static void main(String[] args) {
        Object o = new A() {};
        System.out.println( o.toString() );
        o = A.class.newInstance() // exception
    }
}

我可以执行相同的A.class值吗?

不,你不能。A是一个接口,只能实例化类。

您的 can 做的是使用一个使用一些欺骗的库/助手来创建实现接口和实例的类。JDK的Proxy类包含静态方法来做到这一点。还有一些工具可以做到与测试相关用例进行自定义磨砂:例如。

这些工具完全按照您在这个问题的标题中的暗示:它们不是实例化界面,而是生成一个实现界面的新类,然后实例化该类。

相关内容

  • 没有找到相关文章

最新更新