Java 使用toString方法打印ArrayList内容时出错

Java 使用toString方法打印ArrayList内容时出错,java,Java,我有一个包含元素的数组,每个元素有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 MyO

我有一个包含元素的数组,每个元素有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);
}
公共类MyObject
{
公共INTA;
公共浮动b;
公共字符串c;
公共字符串MyObject(整数a、浮点b、字符串c)
{
这个a=a;
这个.b=b;
这个.c=c;
} 
@凌驾
公共字符串toString()
{
返回(“a=“+a+”b=“+b+”c=“+c”);
}
}
ArrayList myArrayList=新建ArrayList();
无效设置()
{
尺寸(100,60);
添加(新的MyObject(1,4.5,“a”);
添加(新的MyObject(2,5.8,“b”);
添加(新的MyObject(3,1.3,“c”);
System.out.println(myArrayList);
myArrayList.removeAll(myArrayList);
}
我不明白为什么会出现这个错误,因为toString方法会写出int和float

有谁能给我一个如何解决这个问题的提示吗


感谢您的帮助

构造函数不能有返回类型。应将其定义为:

public MyObject(int a, float b, String c) {
  doSomething();
}

正如评论中指出的,您现在没有有效的构造函数

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
时:
newmyobject(3,1.3,“c”),找不到匹配的构造函数

将方法更改为:

public MyObject(int a, float b, String c) {
  this.a = a;
  this.b = b;
  this.c = c;
} 

它应该可以工作。

您的构造函数没有遵循正确的语义。它应该和类名同名,并且没有返回类型。i、 e

public MyObject(int a, float b, String c){

}

公共字符串myObject(int a,float b,String c)
这是您的构造函数吗?是的,它是构造函数还是删除构造函数中的“String”,无返回类型