【发布时间】:2019-03-19 21:05:37
【问题描述】:
这里是 Java 8。我有以下通用类:
public class Memory<T> {
private String moniker;
private Date timestamp;
private T data;
// constructors, getters & setters, etc.
}
我正在尝试像这样构建一个非泛型 MemoryFactory:
public class MemoryFactory {
public Memory<?> createMemory(Object data, String moniker) {
Date now = new Date();
return new Memory<?>(moniker, now, data);
}
}
但是,对于 <?> 用法,我在返回语句中遇到编译器错误:
通配符类型 '?'不能直接实例化
同样,我希望MemoryFactory 是非泛型的,并允许我进行以下调用:
Memory<Fizz> fizzMemory = memoryFactory.createMemory(new Fizz(), "fizz1");
Memory<String> strMemory = memoryFactory.createMemory("SOMETHING", "str1");
Memory<Buzz> buzzMemory = memoryFactory.createMemory(new Buzz(11, true), "buzz1");
我需要做什么来完成此操作并修复编译器错误?
【问题讨论】:
标签: generics java-8 compiler-errors