我有一个包含元素的数组,每个元素都有3个参数(int,float和string)。我按照解释使用toString方法打印数组但是我得到错误"该方法必须返回String"类型的结果。在这一行:
public String MyObject(int a, float b, String c)
这是我的代码:
public class MyObject
{
public int a;
public float b;
public String c;
public String MyObject(int a, float b, String c)
{
this.a = a;
this.b = b;
this.c = c;
}
@Override
public String toString()
{
return ("a="+a+" b="+b+" c="+c);
}
}
ArrayList<MyObject> myArrayList = new ArrayList<MyObject>();
void setup()
{
size(100, 60);
myArrayList.add(new MyObject(1, 4.5, "a"));
myArrayList.add(new MyObject(2, 5.8, "b"));
myArrayList.add(new MyObject(3, 1.3, "c"));
System.out.println(myArrayList);
myArrayList.removeAll(myArrayList);
}
我不明白为什么我会收到此错误,因为toString方法会写出int和float。
有人能给我一个如何解决这个问题的提示吗?
感谢您的帮助
答案 0 :(得分:4)
构造函数不能具有返回类型。它应该定义为:
public MyObject(int a, float b, String c) {
doSomething();
}
答案 1 :(得分:4)
正如评论所指出的那样,你现在没有一个有效的构造函数。
public String MyObject(int a, float b, String c) {
this.a = a;
this.b = b;
this.c = c;
}
是一种名为String
的返回类型为MyObject
的方法。您看到的错误是您已声明方法的返回类型为String
,但您编写的方法并未返回任何内容。
此外,由于您还没有定义构造函数,Java会为您添加默认构造函数:
public MyObject(){
}
因此,当您尝试使用三个给定参数MyObject
构造new MyObject(3, 1.3, "c");
时,它找不到匹配的构造函数。
将方法更改为:
public MyObject(int a, float b, String c) {
this.a = a;
this.b = b;
this.c = c;
}
它应该有用。
答案 2 :(得分:3)
您的构造函数没有遵循正确的语义。它应该与Class Name具有相同的名称,并且不具有返回类型。即。
public MyObject(int a, float b, String c){
}