Java相当于C ++输出流重载

时间:2013-01-31 20:57:45

标签: java

我正在从C ++背景转向Java,我现在正在研究不重载运算符的概念,就像Java方式一样。我目前正试图弄清楚如何处理这样一种情况:如果我用C ++编写,我会为我的课程重载operator<<并将其称为一天。

如何在Java中处理这种情况?是否有特定语法的特定过程,或者像写

这样简单
public void PrintMyStuff( final MyClass myClass ){
    System.out.print( /*MyClass member1*/ );
    System.out.print( /*MyClass member2*/ );
}

2 个答案:

答案 0 :(得分:6)

我想你已回答了自己的问题。把一些“仪式”和“正确的做事方式”放到事物中 - 惯例是将这个“打印方法”称为toString(),它应该返回一个String - 然后显式打印String。

(...虽然如果你只是按照你想要的方式打印,我就不会喋喋不休......特别是如果它只是出于你自己的目的......)

以下是此约定的显着链接:http://www.javapractices.com/topic/TopicAction.do?Id=55

答案 1 :(得分:1)

您想获取对象的字符串表示吗?如果是这样,请覆盖toString()方法。例如:

@Override
public String toString() {
    StringBuilder sb = new StringBuilder();
    sb.append(member1);
    ...
    sb.append(member2);
    return sb.toString();
}

StringBuilderstd::stringstream我最接近的等价物。

HTH