Tôi đang chuẩn bị cho mình một kỳ thi Java, và tôi đang đọc "Hướng dẫn học lập trình viên OCA Java SE 8 (Bài thi 1Z0-808)". Trong phần khai thác, tôi tìm thấy câu này:Toán tử Shift - toán hạng phải được chuyển đổi thành số nguyên nguyên?
Shift Toán tử: Toán tử shift có hai toán hạng phải là chuyển đổi thành số nguyên nguyên thủy.
tôi cảm thấy lạ với tôi vì vậy tôi thử nghiệm nó với dài:
public class HelloWorld{
public static void main(String []args){
long test = 3147483647L;
System.out.println(test << 1);
}
}
và nó làm việc, không có lỗi biên dịch và kết quả là chính xác. Cuốn sách có lỗi hay tôi hiểu nhầm câu trích dẫn của cuốn sách?
JLS định nghĩa loại tích phân là _ "Các loại số là byte loại tích phân, ngắn, int, dài và char, ..." _ và cho toán tử shift _ "Đây là thời gian biên dịch lỗi nếu loại của mỗi toán hạng của toán tử shift, sau khi thăng hạng số đơn, không phải là kiểu tích phân nguyên thủy. "_ –