gpt4 book ai didi

java - 如何动态创建实现某些接口(interface)的新类并实例化它?

转载 作者:行者123 更新时间:2023-11-30 03:59:49 25 4
gpt4 key购买 nike

Java 是否可以在运行时编写新类?

有什么手段可以做到这一点?反射(reflection)?编译器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是一个接口(interface),只能实例化类。

可以做的是使用一个库/帮助程序,它使用一些技巧来创建一个实现该接口(interface)的类并实例化该接口(interface)。 JDK 的 Proxy类包含静态方法来做到这一点。还有一些工具可以做到这一点,这些工具是针对与测试相关的用例定制的:mockito ,例如。

这些工具的作用正是您在这个问题的标题中暗示的:它们不是实例化接口(interface),而是生成一个实现该接口(interface)的新类,然后实例化该类。

关于java - 如何动态创建实现某些接口(interface)的新类并实例化它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22234766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com