在java中以同一行打印

我有一个名为Items和3个派生类的基类,在Items基类中,我有一个表单的打印function

public void print(){ System.out.println("ID " + id + " Title " + title + "  "); } 

在每个派生类中,我通过super.print();调用Items打印函数super.print(); 其后是与派生类相关的特定打印function。

我的问题是,每当从一个派生类执行打印时,打印的文本就不在同一行上。 所以super.print()将在派生类打印函数之上。 我如何让他们俩在同一条线上?

不要在基类上使用println而是使用print

在打印完新行后,你无法安全地收回换行符(根据终端输出退格符号,但你真的不想这样做)。 我认为构建它的逻辑方法可能是有一个超类函数:

 public void print() { System.out.println(toString()); } 

然后根据需要覆盖toString

 public String toString() { return "ID " + id + " Title " + title + " <" + year + "> "; } 

子类

 public String toString() { return super.toString() + " ... more stuff"; } 

System.out.print替换println

看起来像overSiding toString()更合适。 然后,您可以根据需要控制打印,它可以转到System.out ,文件,记录器和其他所有内容。

 @Override public String toString() { return String.format("ID %s Title %s <%d> ", id, title, year); } 

然后在子类中:

 @Override public String toString() { return super.toString() + " whatever"; } 

API链接

  • Object.toString()

相关问题

  • Java中的toString()
  • toString()只对调试有用吗?
  • 何时使用toString()方法