首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

javaSE有关问题。你的基础有多好!简单有关问题。

2013-08-16 
javaSE问题。。你的基础有多好!!简单问题。。static String spublic static void main(String[] args){System

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);
    }

[解决办法]
引用:
Quote: 引用:

看一下源代码不就知道了?
    public void print(String s) {
if (s == null) {
    s = "null";
}
write(s);
    }

这个才是我想要的答案(这样打印语句调用的是toString()方法就没错了).请问源代码是怎么查看的.

eclipse里面可以按住CTRL+鼠标左键点你要查看的方法
[解决办法]
引用:
Quote: 引用:

看一下源代码不就知道了?
    public void print(String s) { 


if (s == null) {
    s = "null";
}
write(s);
    }


这个才是我想要的答案(这样打印语句调用的是toString()方法就没错了).请问源代码是怎么查看的.

这里没有调用toString方法。。只有当你想打印一个对象的时候,print调用String.valueOf(Object o)才会调用对象的toString方法

热点排行