gpt4 book ai didi

接受泛型类的java方法,创建该类的新实例并调用其方法

转载 作者:行者123 更新时间:2023-11-29 04:30:31 25 4
gpt4 key购买 nike

我有很多电子邮件类,从抽象电子邮件类扩展而来的 EmailA、EmailB、EmailC、EmailD、EmailE。每封电子邮件都可以自动生成其内容,并且其内容在每个电子邮件类别之间是不同的..

我想生成 x 条 EmailXXXXX 类的消息。

它们都有方法 generateRandomMessage,所以我想编写一个接受电子邮件类的通用方法,并创建给定电子邮件类的新实例以从该电子邮件类获取多个随机消息。

下面是我的尝试,但我不知道如何编写一个接受泛型类的方法并创建该类的新实例并调用它的方法。

帮助

// Generate X number of message for the given input email class
public void generateEmailData(int numOfMessage, Class<T> emailClass) {

for (int i = 0; i < numOfMessage; i++) {
// Instead of creating generateEmailData method in every email class
// new EmailA().generateRandomMessage();
String message = new emailClass.getClass().().generateRandomMessage();
System.out.println(message);
}
}

最佳答案

首先,您应该定义一些绑定(bind)到 T 参数的类型。否则它将在运行时变成对象。

class YourClass <T extends BaseEmailClass>

现在实例化类:

public void generateEmailData(int numOfMessage, Class<T> emailClass) {       
for (int i = 0; i < numOfMessage; i++) {
String message = emailClass.newInstance().generateRandomMessage();
System.out.println(message);
}
}

假设 BaseEmailClass 是所有 EmailXXXXX 类的通用父类(super class)或超接口(interface),它具有 generateRandomMessage() 方法.

关于接受泛型类的java方法,创建该类的新实例并调用其方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43970876/

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