建議3:三元操作符的類型務(wù)必一致。
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));
}
}
運(yùn)行結(jié)果是false。s = 90, s1 = 90.0.
三元操作符類型的轉(zhuǎn)換規(guī)則:
- 若兩個(gè)操作數(shù)都不可轉(zhuǎn)換, 則不做轉(zhuǎn)換姐呐,返回值為Object類型。
- 若兩個(gè)操作數(shù)是明確類型的表達(dá)式(比如變量),則按照正常的二進(jìn)制數(shù)字來(lái)轉(zhuǎn)換,int類型轉(zhuǎn)換為long類型,long類型轉(zhuǎn)換為float類型等退个。
- 若兩個(gè)操作數(shù)中有一個(gè)是數(shù)字S募壕,另外一個(gè)是表達(dá)式,且其類型標(biāo)示為T语盈,那么舱馅,若數(shù)字S在T的范圍內(nèi),則轉(zhuǎn)換為T類型刀荒;若S超出了T類型的范圍代嗤,則T轉(zhuǎn)換為S類型。
- 若兩個(gè)操作數(shù)都是直接量數(shù)字缠借,則返回值類型為范圍較大者干毅。
因此,保證三元操作符中的兩個(gè)操作數(shù)的類型一致泼返,即可減少可能錯(cuò)誤的發(fā)生硝逢。