2013-01-31 89 views
-1

我不理解的部分是讓String的String表示形式爲String「null」。 Java中這個功能的基本原理是什麼?爲什麼在C#中使用(「」+ null =「」)而在Java中使用(「」+ null =「null」)?

在Java中,「這只是它的方式」有更深的答案嗎?

+0

我可以看到。我只是想知道在Java中決定讓null的字符串表示爲「null」的原因是什麼。有沒有比「這只是它的方式」更深的答案。 –

+1

因爲空字符串不爲空。所以如果你看到一個空字符串被打印/記錄,你會如何區分它的空值? – BalusC

+0

@BalusC然後,在C#中,爲什麼* inverse *是真的?這整個問題是..好吧,關閉:D – 2013-01-31 18:30:13

回答

4

如果你想看到一個值爲空,你會看到空。

System.out.println(null); 

打印

null 

而且

Integer a = null; 
System.out.println("a= " + a); 

打印你所期望的

a= null 

至於爲什麼C#不這樣做,我不知道。我想象設計師對null的含義做出了不同的假設。恕我直言,它不應該是一個空字符串相同。

+0

但在C#中是*不*這種方式,問題是「爲什麼不?」 (這是一個很差的問題。) – 2013-01-31 18:31:15

+0

-1因爲這不是問題的答案。 「Java中的功能背後的原因是什麼(與C#相比)?」這是一個很糟糕的問題。這將需要一個大案例 - 而不僅僅是說明它是如何工作的 - 來爭論一個答案。 – 2013-01-31 18:31:46

+0

@pst OP不問爲什麼在C#中,只有爲什麼在Java中。既然你不相信這是答案,我期待你的回答。 ;) –

-1

因爲String「null」不等於object null。

當你這樣做「」 +空,空對象獲取鑄造爲字符串,然後我可以比較stirng「空」

+5

你看過這個問題嗎? –

+3

這並不回答問題,只是重複其中的一部分。 –

+0

我在編輯完這個問題後沒有閱讀過,這是一個糟糕的問題,它對這個社區並不好,去問James Gosling,Mike Sheridan,Patrick Naughton和微軟的某個人,問他們這個問題。 –

相關問題