Happiness is more than pleasure without pain

你只有非常努力,才能看起来毫不费力

导航

关于Java中的toString()方法

package c07;
class ewq{
public String toString()
{
return "ppppppppp";
}


public static void main(String[] args){
     ewq t= new ewq();
     System.out.print(t);
}

}


Sysout.out是一个PrintStream对象,print(println同理)方法有N个重载,其中一个是print(Objcet obj)。

public void print(char c) {
  write(String.valueOf(c));
}

没toString方法是吧,别急继续往里走,看String.valueIOf(Object obj)方法。

public static String valueOf(Object obj) {
  return (obj == null) ? "null" : obj.toString();
}

看到toString了吧。

这就是System.out.print的实现过程。

注意,在传的参数不是String的时候,会调用String.value的各种重载把Long、Double等类型的对象转成String。在参数是String的时候,就不会这么麻烦,而是直接write了。

其实调的是String的静态方法valueOf

posted on 2014-09-07 13:17  believer  阅读(154)  评论(0编辑  收藏  举报