讓我們看看下面最簡單的Java代碼片段。評估爲布爾值的表達式不能與Java中的字符串連接。爲什麼?
final public class Parsing
{
public static void main(String[] args)
{
int p=10;
int q=10;
System.out.println(p==q);
}
}
Java中的上述代碼是精細和顯示真爲相同類型(INT)的p和q都包含相同的值(10)。現在,我想連接println()的參數,以便它包含一個新的換行序列\ n,結果以下面的新行顯示。
System.out.println("\n"+p==q);
哪一個不是,因爲在所有的表達p == q計算一個布爾值和在Java中(未布爾,一個包裝型)的布爾類型允許永遠不能被轉換爲任何其它類型的可用Java的。因此,上面提到的語句是無效的,它會發出編譯時錯誤。在Java中繞過這種情況的方式是什麼?
令人驚訝的是,以下語句在Java中是完全有效的。
System.out.println("\n"+true);
System.out.println("\n"+false);
分別顯示true和false。怎麼樣?爲什麼System.out.println("\n"+p==q);
聲明中的相同內容不被允許?
這可能會有所幫助[運算符優先級](http://download.oracle.com/javase/tutorial/java/nutsandbolts/operators.html) –
一個愚蠢的錯誤。 – Lion