gpt4 book ai didi

java - 使用泛型限制传递给参数的类类型而不进行强制转换

转载 作者:行者123 更新时间:2023-12-01 17:30:08 25 4
gpt4 key购买 nike

假设我有一个实现,能够将某种格式的字符串转换为指定类的对象...

public interface Translator {
<T> T convertToObject(Class<T> clazz, String msg);
}

我有一个使用它的类,如下所示:

public <T> T proccessMessage(Class<? extends Response> responseCls,String msg) {
return (T) translator.convertToObject(responseCls, msg);
}

有没有办法不用强制转换就能做到这一点?我的目的是将 processMessage 限制为仅接受 Response 类型。响应类型是标记接口(interface)。谢谢!

最佳答案

对于作为参数传递给转换器的类和返回的类型,您必须使用相同的类型,因为这就是它在接口(interface)中的定义方式:

public <T extends Response> T proccessMessage(Class<T> responseCls,String msg) {
return translator.convertToObject(responseCls, msg);
}

关于java - 使用泛型限制传递给参数的类类型而不进行强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888354/

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