首页 > 解决方案 > 得到关于不兼容类型问题的 .equals(),我如何制作我的 ArrayList并点兼容并将答案转换为布尔值

问题描述

我正在制作一个蛇游戏,不希望我的樱桃在蛇体内产生,但是当我想使用 equals 来确定它是否在里面时,它不能导致它们不兼容。有什么方法可以使它们兼容还是我必须以另一种方式使它在此处输入图像描述

public boolean collisionCheck1 (Point cherry){


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

     }
     else 
         return false;
 }

这是检查部分,snakeParts 是数组列表,而樱桃是重点

标签: javaarraylistpoint

解决方案


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

在您的情况下,snakeParts是一个ArrayList<Point>对象,其中包含 Point 类型对象的列表(不仅仅是一个 Point 对象)。

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

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

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

i的索引在哪里ArrayList

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

snakeParts.contains(cherry)

如果snakeParts ArrayList包含cherryPoint 对象,则返回 true,否则返回 false。


推荐阅读