javaSE问题。。你的基础有多好!!简单问题。。
static String s;
public static void main(String[] args){
System.out.println(s);
}
简单问题 这样会打印出null.很简单
但是不知道我理解的正确不正确,每个打印语句其实调用的是toString()方法.
但是当我把程序改成
static String s;
public static void main(String[] args){
System.out.println(s.toString());
}
就会报异常.
报异常我能理解.但是第一个程序能打印出null,让我想不通.(能打印出null说明,他把null转成了字符串).
请问是怎么回事.内部是怎么把null转成字符串的或者说是用什么方法转的...
------解决方案--------------------看一下源代码不就知道了?
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
------解决方案--------------------去看看 System.out.println() 这个函数的源码就非常清楚了
------解决方案--------------------JDK自带,去目录里面找这个文件: src.zip
顺便贴给你吧:
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
------解决方案--------------------
eclipse里面可以按住CTRL+鼠标左键点你要查看的方法
------解决方案--------------------
看一下源代码不就知道了? public void print(String s) {