如何覆盖toString并打印出ArrayList的自定义类类型

时间:2016-05-31 17:33:56

标签: java arraylist override tostring println

我能找到的最接近的是这个帖子: How to print the value of arraylist contents in my logcat?

但是,当我尝试覆盖输出时,它给出了错误:类型数组中的方法toString(long [])不适用于参数(List)

//更新: 事实证明,我不需要System.out.println中的Arrays.toString。所以让我把我的问题改成:为什么我还需要Interval类中的Override?我注意到没有它,我会得到这样的输出:

[Interval@6d06d69c, Interval@7852e922, Interval@4e25154f, Interval@70dea4e]

这是我的代码:

 public static void main (String [] args) {
     List<Interval> intervals = new ArrayList<Interval>();
     intervals.add(new Interval(1,3));
     intervals.add(new Interval(2,6));
     intervals.add(new Interval(8,10));
     intervals.add(new Interval(15,18));
     System.out.println(Arrays.toString(intervals));
 }

这是我的间隔类:

public class Interval {
    int start;
    int end;
    Interval() {start = 0; end = 0;}
    Interval(int s, int e) {
    start = s;
    end = e;
    }
    @Override
    public String toString() {
        return "[ " + start + ", " + end + "] ";
    }
}

1 个答案:

答案 0 :(得分:1)

问题是Arrays.toString(...)需要一个数组用于输入,而不是列表。