我正在从C ++背景转向Java,我现在正在研究不重载运算符的概念,就像Java方式一样。我目前正试图弄清楚如何处理这样一种情况:如果我用C ++编写,我会为我的课程重载operator<<
并将其称为一天。
如何在Java中处理这种情况?是否有特定语法的特定过程,或者像写
这样简单public void PrintMyStuff( final MyClass myClass ){
System.out.print( /*MyClass member1*/ );
System.out.print( /*MyClass member2*/ );
}
答案 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();
}
StringBuilder
与std::stringstream
我最接近的等价物。
HTH