Java 类型不匹配:无法从void转换为ArrayList<;字符串>;
为什么我得到这个代码的错误?我有ArrayList和Collections的正确导入Java 类型不匹配:无法从void转换为ArrayList<;字符串>;,java,arraylist,Java,Arraylist,为什么我得到这个代码的错误?我有ArrayList和Collections的正确导入 private ArrayList<String> tips; public TipsTask(ArrayList<String> tips){ this.tips = Collections.shuffle(tips); } 私有数组列表提示; 公共情报任务(ArrayList提示){ this.tips=Collections.shuffle(tips); } Coll
private ArrayList<String> tips;
public TipsTask(ArrayList<String> tips){
this.tips = Collections.shuffle(tips);
}
私有数组列表提示;
公共情报任务(ArrayList提示){
this.tips=Collections.shuffle(tips);
}
Collections.shuffle return void,不能将void分配给ArrayList
例如,您可以执行以下操作:
Collections.shuffle(tips);
this.tips = tips;
问题是
Collections.shuffle
方法不返回任何内容
您可以尝试以下方法:
private ArrayList<String> tips;
public TipsTask(ArrayList<String> tips){
this.tips = new ArrayList<String>(tips);
Collections.shuffle(this.tips);
}
私有数组列表提示;
公共情报任务(ArrayList提示){
this.tips=新阵列列表(tips);
Collections.shuffle(this.tips);
}
集合。洗牌
将数组洗牌到位。这就足够了:
private ArrayList<String> tips;
public TipsTask(ArrayList<String> tips){
this.tips = tips;
Collections.shuffle(tips);
}
私有数组列表提示;
公共情报任务(ArrayList提示){
this.tips=tips;
收藏。洗牌(提示);
}
或者,如果您不想更改原始列表:
private ArrayList<String> tips;
public TipsTask(ArrayList<String> tips){
this.tips = new ArrayList<String>(tips);
Collections.shuffle(this.tips);
}
私有数组列表提示;
公共情报任务(ArrayList提示){
this.tips=新阵列列表(tips);
Collections.shuffle(this.tips);
}
集合。洗牌(提示)
返回无效。因此,您不能将其分配给ArrayList()
你想要的是
private ArrayList<String> tips;
public TipsTask(ArrayList<String> _tips){
Collections.shuffle(_tips);
this.tips = _tips;
}
私有数组列表提示;
公共情报任务(ArrayList _tips){
收藏。洗牌(_技巧);
this.tips=\u tips;
}
您应该这样称呼它:
private ArrayList<String> tips;
public TipsTask(ArrayList<String> tips){
this.tips = tips;
Collections.shuffle(tips);
}
私有数组列表提示;
公共情报任务(ArrayList提示){
this.tips=tips;
收藏。洗牌(提示);
}
洗牌(提示)直接修改ArrayList。它不需要创建副本。我认为您应该这样写:
private List<String> tips;
public TipsTask(List<String> tips) {
this.tips = new ArrayList<String>(tips);
Collections.shuffle(this.tips);
}
私人列表提示;
公共提示任务(列出提示){
this.tips=新阵列列表(tips);
Collections.shuffle(this.tips);
}
另一种方法是将列表私有化。拥有原始引用的人可以操纵您的私有状态。提示:Collections.shuffle的方法签名是什么?特别是,注意错误消息(上面说“不可能将void/nothing赋值给ArrayList变量”),shuffle返回什么?政府应该充分回答这个问题。如果出现类型错误,请始终首先检查相关的定义/类型-没有问题,只有不正确的用法。
private List<String> tips;
public TipsTask(List<String> tips) {
this.tips = new ArrayList<String>(tips);
Collections.shuffle(this.tips);
}