处理类型不匹配
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 reference 中 append()
函数的文档。具体来说,这个位:
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 返回给您的数组。
还有一点注意:你应该养成使用正确缩进和大写的习惯(类 应该以大写字母开头),否则你的代码会有点难以阅读。
我是一个生疏的程序员,正在开发一个将有多个对象 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 reference 中 append()
函数的文档。具体来说,这个位:
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 返回给您的数组。
还有一点注意:你应该养成使用正确缩进和大写的习惯(类 应该以大写字母开头),否则你的代码会有点难以阅读。