处理类型不匹配

Processing type mismatch

我是一个生疏的程序员,正在开发一个将有多个对象 classes 的应用程序。我唯一的错误是类型不匹配,我不确定调试器正在读取哪个对象,哪个实际上在我创建的坐标 class 中。

    public class Lily {
  int state;

  public Lily(coord[] pond) {
 int state = 0;
 coord place = new coord (mouseX, mouseY);
 pond = append(pond, place);   \this is the line that's getting a type error 

  }

   public void draw(){
   ellipse(mouseX, mouseY, 40, 40);
   fill(#08BC09);

 }
}

和坐标 class

public class coord {

  float[] pair = new float[2];

  public coord(float X, float Y){
    pair[0] = X;
    pair[1] = Y;

  }
}

编辑:错误消息为 "Type Mismatch, "Java.lang.Object" does not match with "main.coord[]" "

有什么帮助吗?提前致谢。

要了解问题,请阅读 the referenceappend() 函数的文档。具体来说,这个位:

When using an array of objects, the data returned from the function must be cast to the object array's data type. For example: SomeClass[] items = (SomeClass[]) append(originalArray, element)

换句话说,你必须这样做:

pond = (coord[])append(pond, place);

原因是 append() 函数接受一个 Object[] 数组作为参数。因此,即使您将 coord[] 数组传递给它,它也不会 "know" 数组包含什么类型。因此,当它 returns 给你时,你会得到一个 Object[] 数组,它恰好是一个 coord[] 数组。编译器无法保证这一点,因此您会收到错误,但您可以安全地 cast 返回给您的数组。

还有一点注意:你应该养成使用正确缩进和大写的习惯(类 应该以大写字母开头),否则你的代码会有点难以阅读。