Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9의 JShell에 다른 목록 명령을 표시하는 방법은 무엇입니까?


JShell Java 9에 도입되었으며 명령줄입니다. main() 없이 간단한 문장, 표현식, 메소드, 클래스를 입력할 수 있는 도구 방법.

JShell에 코드를 입력할 수 있을 때 코드에 고유한 ID가 할당되었습니다. . 이 ID는 1에서 시작하고 JShell에 입력된 각 명령에 대해 증가합니다. 시작할 때 로드된 라이브러리에 대해서도 마찬가지입니다. 이러한 각 가져오기에 대해 고유한 ID 할당되었습니다. $1로 시작합니다. 로드된 각 코드에 대해 증가합니다($2, $3 등). 세션 중에 로드되고 입력된 모든 코드를 나열하는 내부 명령이 있습니다. 그런 다음 "/list " 명령.

/list
/list [ID]
/list [Code_Name]
/list -start
/list -all
  • /목록: 이 명령은 현재 세션에 입력된 모든 활성 코드를 표시합니다(JShell 시작 시 로드된 코드 제외).
  • /목록 [ID]: 이 명령은 입력한 ID에 해당하는 소스 코드를 표시합니다.
  • /list [코드_이름]: 입력한 이름에 해당하는 소스 코드를 표시합니다.
  • /list -start: 이 명령은 JShell이 ​​시작될 때 로드된 모든 코드를 표시합니다. 세션을 시작할 때 기본적으로 미리 로드된 모든 가져오기가 표시되고 사용자가 미리 로드하려는 코드가 표시될 수 있습니다(이 부분은 JShell 시작 사용자 지정 장에서 세 번째 부분에서 설명됩니다).
  • /list -all: 이 명령은 JShell 세션 중에 입력된 모든 활성, 비활성, 오류 및 사전 로드 코드를 나열합니다.

아래 코드 스니펫에서 "/list -all을 사용하여 입력된 모든 가져오기, 표현식 등을 나열할 수 있습니다. " 명령.

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;
    }

아래 코드 스니펫에서 변수의 이름을 지정할 수 있습니다. , 메서드 , 또는 같은 이름을 가진 유형일 수도 있습니다. 그런 다음 "/list " 해당 유형과 함께 이 이름의 다른 발생을 표시하는 명령입니다.

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;
    }