我是一个生锈的程序员,正在开发一个具有多个对象类的应用程序。我唯一的错误是类型不匹配,我不确定调试器正在读取哪个对象,哪个实际上是在我所做的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 []“”
不匹配有任何帮助吗?提前谢谢。
答案 0 :(得分:1)
要了解此问题,请阅读the reference中append()
功能的文档。具体来说,这一点:
使用对象数组时,必须将从函数返回的数据强制转换为对象数组的数据类型。例如:
SomeClass[] items = (SomeClass[]) append(originalArray, element)
换句话说,你必须这样做:
pond = (coord[])append(pond, place);
原因是append()
函数将Object[]
数组作为参数。因此,即使你传递了一个coord[]
数组,它也不会“知道”该数组的类型。因此,当它返回给您时,您会得到一个恰好是Object[]
数组的coord[]
数组。编译器无法保证这一点,因此您会收到错误,但您可以安全地强制转换返回给您的数组。
还有一点注意事项:你应该养成使用正确的缩进和大小写的习惯(类应该以大写字母开头),否则你的代码有点难以阅读。