java - Java 将通配符转换为模板类型
问题描述
import com.google.common.collect.Multimap;
import java.util.Collection;
public class GenericsTest {
private final Multimap<String, Box<?>> boxMultimap;
public GenericsTest(Multimap<String, Box<?>> boxMultimap) {
this.boxMultimap = boxMultimap;
}
public <T> Collection<Box<T>> get(final String boxType) {
final Collection<Box<T>> boxes = boxMultimap.get(boxType);
return boxes;
}
}
盒子:
public class Box<T> {
// T stands for "Type"
private T t;
public void set(T t) { this.t = t; }
public T get() { return t; }
}
对于这个特定的示例方法,我将如何boxMultimap.get(boxType);
转换为类型。以上无法从多地图中检索。<T>
get
以下工作正常:
public class GenericsTest {
private final Multimap<String, Box> boxMultimap;
public GenericsTest(Multimap<String, Box> boxMultimap) {
this.boxMultimap = boxMultimap;
}
public <T> Collection<Box<T>> get(final String boxType) {
final Collection boxes = boxMultimap.get(boxType);
return boxes;
}
}
但我想明确说明本地框集合变量 ( final Collection<Box<T>> boxes = boxMultimap.get(boxType);
)。
解决方案
推荐阅读
- javascript - 如何提供动态(计算的)css 属性
- postgresql - 使用列作为 to_tsquery 的输入
- css - 使用 flex-box 时如何水平拉伸元素
- c# - 在 MVC 上通过 JSON 读取和验证数据
- tmux - 与标准终端应用程序和作业控制相比,终端多路复用器的优点是什么?
- c++ - RtAudio + Qt:双工不能在 Linux 上使用 RME Fireface
- scala - Play Framework Database 相关端点在运行一段时间后挂起
- c# - 即使我不要求 C# 使用 Overlapped IO?
- python - 使用 xlwings 时的 Matplotlib 问题 - 无法加载 Qt 平台插件
- sql - 当我们不知道sql中的确切格式时,如何为标志列添加检查约束?