簡體   English   中英

Java += 運算符

[英]Java += operator

據我了解 x+=1 與 x=x+1 一樣,但為什么它在 String 中不起作用?

String str = "";
str = str + null + true; // fine
str += null + true; // Error message: The operator + is undefined for the argument type(s) null, boolean 

在 Java 中, 表達式是從左到右計算的 因此

str = str + null + true;

是相同的

str = (str + null) + true;

並且nulltrue被隱式轉換為String s。 這是有效的,因為在str + null ,編譯器知道strString並將null轉換為String 這是可能的,因為在 Java 中每個值都可以轉換為String 通過同一行論證,編譯器知道(str + null)是一個String ,因此將true轉換為String

另一方面,

str += null + boolean;

相當於

str = str + (null + boolean);

因此,首先評估null + boolean 由於沒有為null, boolean類型定義運算符+ ,因此會生成編譯器錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM