类型不匹配:无法从void转换为ArrayList
为什么我收到此代码的错误? 我有正确的ArrayList和Collections导入
private ArrayList tips; public TipsTask(ArrayList tips){ this.tips = Collections.shuffle(tips); }
Collections.shuffle(tips);
Collections.shuffle返回void,不能将void赋给ArrayList
。
你可以这样做:
Collections.shuffle(tips); this.tips = tips;
问题是Collections.shuffle
方法不返回任何内容。
你可以试试这个:
private ArrayList tips; public TipsTask(ArrayList tips){ this.tips = new ArrayList (tips); Collections.shuffle(this.tips); }
Collections.shuffle
就地对arrays进行洗牌。 这就足够了:
private ArrayList tips; public TipsTask(ArrayList tips){ this.tips = tips; Collections.shuffle(tips); }
或者,如果您不希望更改原始列表:
private ArrayList tips; public TipsTask(ArrayList tips){ this.tips = new ArrayList (tips); Collections.shuffle(this.tips); }
Collections.shuffle(tips)
返回void。 所以你不能将它赋给ArrayList()
你想要的是什么
private ArrayList tips; public TipsTask(ArrayList _tips){ Collections.shuffle(_tips); this.tips = _tips; }
你应该这样称呼它:
private ArrayList tips; public TipsTask(ArrayList tips){ this.tips = tips; Collections.shuffle(tips); }
Collections.shuffle(tips)直接修改ArrayList。 它不需要创建副本。
我想你应该这样写:
private List tips; public TipsTask(List tips) { this.tips = new ArrayList (tips); Collections.shuffle(this.tips); }
另一种方法是将列表设为私有。 具有原始参考的人可以操纵您的私人状态。