处理类型不匹配

时间:2016-04-26 00:53:40

标签: processing

我是一个生锈的程序员,正在开发一个具有多个对象类的应用程序。我唯一的错误是类型不匹配,我不确定调试器正在读取哪个对象,哪个实际上是在我所做的coord类中。

    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);

 }
}

coord 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“与”main.coord []“”

不匹配

有任何帮助吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

要了解此问题,请阅读the referenceappend()功能的文档。具体来说,这一点:

  

使用对象数组时,必须将从函数返回的数据强制转换为对象数组的数据类型。例如:SomeClass[] items = (SomeClass[]) append(originalArray, element)

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

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

原因是append()函数将Object[]数组作为参数。因此,即使你传递了一个coord[]数组,它也不会“知道”该数组的类型。因此,当它返回给您时,您会得到一个恰好是Object[]数组的coord[]数组。编译器无法保证这一点,因此您会收到错误,但您可以安全地强制转换返回给您的数组。

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