gpt4 book ai didi

Java:在给定类对象的情况下转换通用类

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

是否有可能将泛型类的类型转换为 java 中给定的 Class 对象?像这样的事情:

public ModelBin<?> getModelBin(Class type) {
return (ModelBin<type>) entities.get(type);
}

编译器告诉我它无法将类型解析为类型。我知道我可以做到这一点,

public ModelBin<?> getModelBin(Class type) {
return entities.get(type);
}

它会起作用,但随后我必须稍后在程序中将每个模型从模型箱中转换出来 - 这是更多的工作。

<小时/>

我又阅读了一些内容,最后得到了这个:

public <T> ModelBin<T> getModelBin(Class<T> type) {
return (ModelBin<T>) entities.get(type);
}

这个函数会返回 ModelBin<type>对象?

最佳答案

public <T> ModelBin<T> getModelBin(Class<T> type) {
return (ModelBin<T>) entities.get(type);
}

这是以类型安全的方式执行此操作的普遍接受的方法。

final ModelBin<String> myStrBin = getModelBin(String.class); 

将正确编译。

Would this have the function return a ModelBin object?

这对编译器来说看起来是正确的,是的。在运行时,返回的 ModelBin 不会有类型(由于删除),但这就是 Java 的设计方式。

关于Java:在给定类对象的情况下转换通用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45927875/

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