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

Làm thế nào để hiển thị các lệnh danh sách khác nhau trong JShell trong Java 9?


JShell đã được giới thiệu trong Java 9 và là một dòng lệnh công cụ cho phép chúng tôi nhập các câu lệnh, biểu thức, phương thức và lớp đơn giản mà không có main () phương pháp.

Khi chúng tôi có thể nhập mã vào JShell, mã đã chỉ định một ID duy nhất . ID này bắt đầu từ 1 và tăng dần cho mỗi lệnh được nhập trong JShell. Điều này cũng có thể đúng đối với các thư viện được tải khi khởi động. Đối với mỗi lần nhập này, một ID duy nhất được chỉ định. Nó bắt đầu với $ 1 và được tăng dần cho mỗi mã được tải ( $ 2, $ 3 và vân vân). Có một lệnh nội bộ để liệt kê tất cả mã đã được tải và được nhập trong một phiên, sau đó sử dụng " / list "lệnh.

/list
/list [ID]
/list [Code_Name]
/list -start
/list -all
  • / list: Lệnh này hiển thị tất cả mã đang hoạt động được nhập trong phiên hiện tại (không bao gồm mã được tải khi JShell khởi động).
  • / list [ID]: Lệnh này hiển thị mã nguồn tương ứng với ID đã nhập.
  • / list [Code_Name]: hiển thị mã nguồn tương ứng với tên đã nhập.
  • / list -start: Lệnh này hiển thị tất cả mã được tải khi JShell khởi động. Khi bắt đầu một phiên, tất cả các mục nhập được tải trước theo mặc định sẽ được hiển thị và có thể là mã mà bạn muốn tải trước (điểm này sẽ được giải thích trong phần thứ ba, trong chương Tùy chỉnh khởi động JShell).
  • / list -all: Lệnh này liệt kê tất cả mã đang hoạt động, không hoạt động, bị lỗi và được tải trước được nhập trong một phiên JShell.

Trong đoạn mã dưới đây, chúng tôi có thể liệt kê tất cả các mục nhập, biểu thức, v.v. đã nhập bằng cách sử dụng " / list -all "lệnh.

jshell> /imports
|    import java.io.*
|    import java.math.*
|    import java.net.*
|    import java.nio.file.*
|    import java.util.*
|    import java.util.concurrent.*
|    import java.util.function.*
|    import java.util.prefs.*
|    import java.util.regex.*
|    import java.util.stream.*
jshell> LocalDate localDate = LocalDate.of(2020, 04, 10)
|   Error:
|   cannot find symbol
|     symbol: class LocalDate
|   LocalDate localDate = LocalDate.of(2020, 04, 10);
|   ^-------^
|   Error:
|   cannot find symbol
|     symbol: variable LocalDate
|   LocalDate localDate = LocalDate.of(2020, 04, 10);
|   ^-------^

jshell> int x = 10
x ==> 10

jshell> public enum Operate {
...>       ADDITION,
...>       DIVISION;
...>    }
| created enum Operate

jshell> /list -all

s1 : import java.io.*;
s2 : import java.math.*;
s3 : import java.net.*;
s4 : import java.nio.file.*;
s5 : import java.util.*;
s6 : import java.util.concurrent.*;
s7 : import java.util.function.*;
s8 : import java.util.prefs.*;
s9 : import java.util.regex.*;
s10 : import java.util.stream.*;
e1 : LocalDate localDate = LocalDate.of(2020, 04, 10);
1 : int x = 10;
2 : public enum Operate {
       ADDITION,
       DIVISION;
    }

Trong đoạn mã dưới đây, chúng tôi có thể đặt tên cho một biến , một phương pháp , hoặc thậm chí một loại có cùng tên. Sau đó, chúng tôi có thể sử dụng " / list "lệnh hiển thị các lần xuất hiện khác nhau của tên này với loại tương ứng.

jshell> int x = 10
x ==> 10

jshell> public int x(int y) {
...>       return y;
...>    }
| created method x(int)

jshell> public long x(long y, long z) {
...>       return y + z;
...>    }
| created method x(long,long)

jshell> /list x

1 : int x = 10;
2 : public int x(int y) {
       return y;
    }
3 : public long x(long y, long z) {
       return y + z;
    }