gpt4 book ai didi

java - arraylist 中的不安全或未经检查的表达式

转载 作者:行者123 更新时间:2023-11-30 08:12:50 26 4
gpt4 key购买 nike

我正在做一个作业,我必须创建一个可迭代的集合来保存某些阈值之间的二叉树的所有值。二叉树类有一个根变量,它是我编写的 TreeNode 类的一个对象。节点仅存储整数值。这是我的方法:

public class Tree {
public Iterable<Integer> listing(int low, int high) {
ArrayList<Integer> list=new ArrayList<Integer>();
return root.listing(lo, hi, list);
}
}

public class TreeNode {
public ArrayList<Integer> listing(int low, int high, ArrayList list) {
if(this.left!=null) {
list=this.left.listing(low, high, list);
}

if(this.value>=low && this.value<=high) {
list.add(this.value);
}

if(this.right!=null) {
list=this.right.listing(low, high, list);
}
return list;
}
}

它在本地工作得很好,但我必须将它上传到使用 Java 6 的平台,并且我收到一个错误,它使用未经检查或不安全的操作。我在我的 IDE 中收到相同的消息,但这似乎暗示它不是很重要。但是,我必须以某种方式解决这个问题。我试着阅读不安全/未经检查的操作,但我不确定我是否真的理解这里的问题所在。有什么方法可以在不更改整个代码的情况下解决这个问题吗?

最佳答案

您正在使用 raw type :

public ArrayList<Integer> listing(
int low, int high, ArrayList list) {
// ^^^^^^^^^

这是不安全的,因为这让我可以通过任何类型的 ArrayList :

root.listing(lo, hi, new ArrayList<String>(Arrays.asList("abc")));

使用 ArrayList<Integer>而不是 ArrayList .

关于java - arraylist 中的不安全或未经检查的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com