java为类对象定义println

Che*_*tpp 0 java class

在C++中,可以实现ostream operator <<能够定义如何将类输出到流cout << Class.

java中有可能做类似的事情out.println(Class)吗?

kai*_*kai 6

System.out.print()调用toString()传递给它的对象的方法.如果覆盖toString()类中的方法,则可以在那里实现自定义行为.您的类继承了该方法Object.每个类都有Objectjava中的超类.以下是默认实现.

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Run Code Online (Sandbox Code Playgroud)

print方法(System.out.print(Object obj))看起来像这样

public void print(Object obj) {
    write(String.valueOf(obj));
}
Run Code Online (Sandbox Code Playgroud)

并且该String.valueOf(Object obj)方法最终调用toString().