Android無法System.out.println出null

今天在採集錯誤時,發現有一個詭異異常:
com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
拋出空指針異常,NullPointerException,奇怪了,我沒有調用這個方法啊,只是
System.out.println()出字符串信息?難不成println空指針字符串會出錯爲了驗證這個問題,我特地寫了如下代碼再onCreate()裏:

String responseBody = null;
System.out.println(responseBody);


當啓動的時候你發現什麼了,果然是應用程序異常退出,然後看到logcat裏報空指針錯誤,天啊!怎麼會這樣。看了一下源碼,

294 @Override
295 public synchronized void println(String s) {
296 if (builder.length() == 0) {
297 // Optimization for a simple println.
298 int length = s.length();
299
300 int start = 0;
....

天啊,這段代碼竟然沒有判斷s是否爲空指針而直接取length了,難怪會報異常,希望android源碼開發者們能看到這個問題,並且改正,要不然每一次在System.out.println()都要判斷是否爲空指針是多麼可怕的事情啊!
發佈了21 篇原創文章 · 獲贊 0 · 訪問量 3534
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章