在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()方法