得到 .equals() on incompatible types 问题,我如何使我的 ArrayList <Point> 和点兼容并将答案转换为布尔值

got the .equals() on incompatible types problem, how do i make my ArrayList <Point> and point compatible and the answer into an boolean

我正在制作贪吃蛇游戏,不想让我的樱桃在蛇体内生成,但是当我想使用 equals 来确定它是否在蛇体内时,它不能导致它们不兼容。有没有办法让它们兼容,或者我必须用另一种方式来兼容enter image description here

public boolean collisionCheck1 (Point cherry){


     if (snakeParts.equals(cherry)){
     return true;

     }
     else 
         return false;
 }

这是检查部分 snakeParts 是数组列表,cherry 是重点

ArrayListjava.util package 的 class,它是 java.util.Collection 接口的子 class。如果您没有指定通用类型,它用于保存任何类型的对象的列表(理解您可以假设为一个对象数组,但它们实际上并不相同)。

在您的例子中,snakeParts 是一个 ArrayList<Point> 对象,它包含一系列 Point 类型对象(不仅仅是一个 Point 对象)。

但是在这里,snakeParts.equals(cherry) 您正在尝试将 ArrayList 类型对象与 Point 类型对象进行比较。

我无法理解你到底想做什么,但如果你想比较你必须做这样的事情。

snakeParts.get(i).equals(Point class object)

其中 iArrayList 的索引。

要检查 snakeParts ArrayList 是否包含 cherry 对象,你可以使用 java.util.List 接口的 contains(your object) 方法,像这样

snakeParts.contains(cherry)

如果 snakeParts ArrayList 包含 cherry 点对象,则 returns 为真,否则 returns 为假。