建議3:三元操作符的類型務必一致。
public class SuggestThree{
public static void main(String[] args){
int i = 80;
String s = String.valueOf(i<100?90:100);
String s1 = String.valueOf(i<100?90:100.0);
System.out.println("兩者是否相等: " +s.equals(s1));
}
}
運行結果是false。s = 90, s1 = 90.0.
三元操作符類型的轉換規則:
- 若兩個操作數都不可轉換, 則不做轉換,返回值為Object類型。
- 若兩個操作數是明確類型的表達式(比如變量),則按照正常的二進制數字來轉換,int類型轉換為long類型,long類型轉換為float類型等。
- 若兩個操作數中有一個是數字S,另外一個是表達式,且其類型標示為T,那么,若數字S在T的范圍內,則轉換為T類型;若S超出了T類型的范圍,則T轉換為S類型。
- 若兩個操作數都是直接量數字,則返回值類型為范圍較大者。
因此,保證三元操作符中的兩個操作數的類型一致,即可減少可能錯誤的發生。