【发布时间】:2021-01-06 21:09:31
【问题描述】:
我有一个 RandomizedWrapper 类。该类包含一个接受列表的构造函数:
public class RandomizedWrapper{
final int upperBound = 100;
final List<RandomizerEntry<?>> randomizeList;
Map<Integer, RandomizerEntry<?>> randomizerMap;
/**
* Construct a new RandomizedWrapper instance
*
* @param randomizeList - A list containing all randomizable objects
*/
public RandomizedWrapper(final List<RandomizerEntry<?>> randomizeList) {
this.randomizeList = randomizeList;
this.randomizerMap = new HashMap<>();
}
}
我想创建这个 RandomizedWrapper 类的新实例。我通过以下代码进行:
List<RandomizerEntry<ItemStack>> randomizerList = new ArrayList<>();
//stuff here
RandomizedWrapper wrapper = new RandomizedWrapper(randomizerList);//error
当我尝试创建这个新对象时,我遇到了以下错误:
The constructor RandomizedWrapper(List<RandomizerEntry<ItemStack>>) is undefined
这毫无意义。我很清楚地在 RandomizedWrapper 类中有一个构造函数,它接受List<RandomizerEntry<?>> 通配符。编译器提出的解决方案是“create a constructor that accepts this argument”。我点击它,只是想看看会发生什么,它告诉我“This constructor already exists”。
有人了解这里发生了什么吗?为什么我不能实例化这个对象?
【问题讨论】:
标签: java generics constructor