从 HashSet 初始化方法

Initialize method from HashSet

我添加了 spells.add(new Magic("boring",2,true)); 和类似的元素,但是当我尝试 运行

for (Magic set : spells) {
        Magic magic1 = new Magic(spells);
        magic1.go();
}

我收到错误 no suitable constructor found for Magic(java.util.HashSet<Magic>

如果我将 Magic magic1 = new Magic(spells); 更改为 Magic magic1 = new Magic("boring",2,true),我会得到想要的结果,但我希望能够使用 HashSet。

如何使 HashSet 的内容可用?

你为什么要在循环中构造一个 new Magic 实例(或者试图,无论如何)?当然,您只需要套装中的那些:

for (Magic spell : spells) {
    spell.go();
}

请注意,目前您也在循环中忽略了 set 变量 - 我已将其重命名为 spell 以便更明显。每当您发现自己声明了一个变量然后忽略它时,这就暗示出了问题...