Tìm thấy một số điều kỳ lạ trong java.Những điều kỳ lạ trong java
Code:
System.out.println(System.getProperty("java.version"));
System.out.println((true) ? (int)2.5 : 3.5);
System.out.println((true) ? (int)2.5 : 3);
System.out.println((true) ? (int)2.5 + "" : 3.5);
Kết quả:
1.8.0_40 2.0 2 2
nó là gì? Tại sao giá trị số nguyên trả về chỉ khi giá trị cho false không phải là một giá trị gấp đôi hoặc nếu chuỗi được thêm vào giá trị đúng? Tại sao làm tròn thứ hai làm việc bởi (int) cast, nhưng giá trị kép trả về chưa? Nó là một lỗi?
Không, những thứ này không phải là lỗi. – Jesper
Theo như trình biên dịch có liên quan, chỉ có một kiểu cho toàn bộ biểu thức '?:', Và nó chỉ ra rằng bằng cách tìm ra loại hẹp nhất trong chung giữa hai bên. –
(Tôi thú nhận rằng tôi ngạc nhiên rằng dòng cuối cùng biên dịch, mặc dù.) –