gpt4 book ai didi

java - 在运行时创建具有泛型类型的类

转载 作者:行者123 更新时间:2023-12-04 05:09:08 25 4
gpt4 key购买 nike

我定义了以下接口(interface):

public interface AllImplementMe<X, Y> {
public Y doSomething(X param);
}

现在我想定义一个工厂方法,它需要在运行时为上述构造子类。
public static <X,Y> AllImplementMe<X, Y> createInstance(String xClassName, String yClassName) { ... }

我如何实际编码上述方法?我一直在研究反射 API,但无法弄清楚?假设所有子类都有一个默认构造函数。

编辑1

我只想对上述代码的意图进行一些说明。以上只是通用系统的一部分,它将允许在运行时添加新的实现子类并根据外部定义的配置执行。所以实际上工厂方法将基于此配置被调用并构造适当的子对象,然后将被要求执行它们的方法。这在概念上类似于 Adnroid 的 AsyncTask http://developer.android.com/reference/android/os/AsyncTask.html我需要以通用方式构造实现子类对象的问题。在大多数情况下,调用这些子代的核心代码并不关心它们的参数类型。

最佳答案

请改用以下工厂方法:

public static <X, Y> AllImplementMe<X, Y> createInstance(Class<X> xClass, Class<Y> yClass)

然后你可以使用 xClass.newInstance() 之类的东西创建 X 的实例. (我没有写确切的代码,因为我不知道你想用 XY 做什么。)

关于java - 在运行时创建具有泛型类型的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15112807/

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