当前位置: 技术问答>java相关
关于Java中的toString()函数有一点理解不透。
来源: 互联网 发布时间:2014-12-28
本文导语: 下面是一个类,里面覆盖了基类的toSting()方法,为什么整个程序中却没有调用它的地方,而它去还在起作用呢?我真是胡涂了,整个程序我没有贴出来,我试着把toString函数注释掉后,程序能运行,但是其结果却不同...
下面是一个类,里面覆盖了基类的toSting()方法,为什么整个程序中却没有调用它的地方,而它去还在起作用呢?我真是胡涂了,整个程序我没有贴出来,我试着把toString函数注释掉后,程序能运行,但是其结果却不同了,说明toString函数还是隐含的起了作用,有那位大侠能帮我解释一下toString是怎样起作用的?
public class AdapterNode
{
org.w3c.dom.Node domNode;
// Construct an Adapter node from a DOM node
public AdapterNode(org.w3c.dom.Node node) {
domNode = node;
}
// Return a string that identifies this node in the tree
// *** Refer to table at top of org.w3c.dom.Node ***
public String toString() {
String s = typeName[domNode.getNodeType()];
String nodeName = domNode.getNodeName();
if (! nodeName.startsWith("#")) {
s += ": " + nodeName;
}
if (domNode.getNodeValue() != null) {
if (s.startsWith("ProcInstr"))
s += ", ";
else
s += ": ";
// Trim the value to get rid of NL's at the front
String t = domNode.getNodeValue().trim();
int x = t.indexOf("n");
if (x >= 0) t = t.substring(0, x);
s += t;
}
return s;
}
} // AdapterNode
public class AdapterNode
{
org.w3c.dom.Node domNode;
// Construct an Adapter node from a DOM node
public AdapterNode(org.w3c.dom.Node node) {
domNode = node;
}
// Return a string that identifies this node in the tree
// *** Refer to table at top of org.w3c.dom.Node ***
public String toString() {
String s = typeName[domNode.getNodeType()];
String nodeName = domNode.getNodeName();
if (! nodeName.startsWith("#")) {
s += ": " + nodeName;
}
if (domNode.getNodeValue() != null) {
if (s.startsWith("ProcInstr"))
s += ", ";
else
s += ": ";
// Trim the value to get rid of NL's at the front
String t = domNode.getNodeValue().trim();
int x = t.indexOf("n");
if (x >= 0) t = t.substring(0, x);
s += t;
}
return s;
}
} // AdapterNode
|
System.out.println(AdapterNode)是就会自动调用这个方法!
看看 thinking in java
看看 thinking in java
|
toString有时是自动调用的,比如System.out.print(aObject);如果aObject非空且不是String
等同于System.out.print(aObject.toString());
等同于System.out.print(aObject.toString());