使用toString方法打印ArrayList

时间:2015-07-13 23:28:07

标签: 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 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。

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

感谢您的帮助

3 个答案:

答案 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){

}