2017-01-21 21 views
-10

對不起,我的英語口語水平很低。 例如:java new object.method()爲什麼不是一個錯誤?

new StringBuilder().reverse().toString(); 

操作.是之前new,所以不執行method()一個對象,以及爲什麼這可以右邊執行?它沒有告訴我這是一個錯誤。

+0

你的問題不清楚,沒什麼意義 – Rahul

+1

很明顯,運算符'.'在* new之前是* not *。事實上,它們都是「主要」,因此它們具有同等的優先級,因此它們從左到右進行評估。 – EJP

+1

@Rahul - 對我來說,這個初學者的問題顯然是有道理的。當我開始編程時(使用java),我仍然記得我的愚蠢問題。 –

回答

-3

運營商'。'之前是new

不,不是。運營商.不在new之前:它們都是Primary,因此它們具有相同的優先級,因此它們從左到右評估。

爲什麼這可以執行正確?

真正的問題是它爲什麼會被編譯,我已經回答了。

它沒有告訴我這是一個錯誤。

這不是一個錯誤。

3

.運算符在new StringBuilder()之前未進行評估 - 它的所有評估都是從左到右。因此new StringBuilder()創建StringBuilder實例,.reverse()反轉(空)StringBuilder,然後.toString()構造一個(空)String

相關問題