Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để thực hiện chuyển đổi kiểu số nguyên trong JShell trong Java 9?


JShell là một công cụ tương tác dòng lệnh được giới thiệu trong phiên bản Java 9 cho phép lập trình viên thực thi các câu lệnh, biểu thức, biến, phương thức, lớp, giao diện, v.v. đơn giản mà không cần khai báo main () phương pháp.

Trong JShell, trình biên dịch cảnh báo người lập trình về đánh máy vấn đề bằng cách ném lỗi. Tuy nhiên, nếu lập trình viên biết về điều đó, thì truyền rõ ràng sẽ được yêu cầu. Nếu chúng tôi cần lưu trữ giá trị dữ liệu nhỏ hơn vào một loại lớn hơn chuyển đổi, rồi đến truyền ngầm định sẽ được yêu cầu.

Có hai loại số nguyên đánh máy :

  • Chuyển nhượng từ ngữ thành biến: Ví dụ: ngắn s1 =123456 , dữ liệu nằm ngoài phạm vi. Nó được biết đến vào thời gian biên dịch và trình biên dịch gắn cờ lỗi.
  • Chỉ định biến thành biến: Ví dụ: s1 =i1 . Giá trị được lưu trữ trong int ở giai đoạn đó:4567, nằm trong phạm vi của kiểu short và trình biên dịch không gây ra bất kỳ lỗi nào. Nó có thể được làm trống trước bằng cách truyền rõ ràng s1 =(short) i1 .

Trong đoạn mã dưới đây, chúng tôi có thể triển khai cả chuyển đổi loại ẩn và rõ ràng.

C:\Users\User>jshell
|   Welcome to JShell -- Version 9.0.4
|   For an introduction type: /help intro

jshell> byte b = 128;
|   Error:
|   incompatible types: possible lossy conversion from int to byte
|   byte b = 128;
|            ^-^

jshell> short s = 123456;
|   Error:
|   incompatible types: possible lossy conversion from int to short
|   short s = 123456;
|             ^----^

jshell> short s1 = 3456
s1 ==> 3456

jshell> int i1 = 4567;
i1 ==> 4567

jshell> s1 = i1;
|   Error:
|   incompatible types: possible lossy conversion from int to short
|   s1 = i1;
|        ^^

jshell> s1 = (short) i1;
s1 ==> 4567

jshell> int num = s1;
num ==> 4567