繁体   English   中英

如何重写toString并打印出ArrayList的自定义类类型

[英]How to override toString and print out custom class type of ArrayList

我可以找到的最接近的线程是: 如何在我的logcat中打印arraylist内容的值?

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

//更新:事实证明,我不需要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 + "] ";
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM