자바 9 대화형 REPL(Read-Evaluate-Print-Loop ) 도구:JShell , 코드 조각을 실행하고 즉각적인 결과를 얻을 수 있습니다. 스니펫 표준 Java 구문을 사용할 수 있는 명령어입니다. 단일 표현식, 명령문 또는 선언을 나타냅니다.
다음은 JShell 도구를 사용하는 동안 따라야 하는 몇 가지 규칙입니다.
JShell 도구 규칙:
- 스니펫은 가져오기 선언, 클래스 선언, 메서드 선언, 인터페이스 선언, 필드 선언, 문 및 기본 표현식과 같습니다.
- 패키지 선언은 허용되지 않습니다. JShell 코드는 일시적인 JShell 패키지.
- 액세스 수정자:공개 , 보호됨 및 비공개 및 수식어:최종 및 정적 최상위에서는 허용되지 않습니다. 선언. 제공된 경우 경고로 무시됩니다.
- 수정자:기본값 및 동기화됨 최상위 에서 전혀 허용하지 않음 선언. 그러나 중첩 컨텍스트에서는 허용할 수 있습니다.
- 추상 수정자는 클래스에서만 허용됩니다.
- 사용자 입력이 불완전한 경우(예:System.out만 입력 println 건너뛰기 부분), JShell 자동 완성 API는 더 많은 사용자 입력을 요청합니다.
- 사용자 입력이 완료되었지만 세미콜론이 없는 경우 , JShell이 자동으로 추가할 수 있습니다.
아래 샘플 코드에서 Employee 필요한 getter 메소드로 클래스를 만들고 new를 사용하여 인스턴스화 연산자.
스니펫
jshell> class Employee { ...> private String firstName; ...> private String lastName; ...> private String designation; ...> public Employee(String firstName, String lastName, String designation) { ...> this.firstName = firstName; ...> this.lastName = lastName; ...> this.designation = designation; ...> } ...> public String getFirstName() { ...> return firstName; ...> } ...> public String getLastName() { ...> return lastName; ...> } ...> public String getDesignation() { ...> return designation; ...> } ...> public String toString() { ...> return "Name = " + firstName + ", " + lastName + " | " + ...> "designation = " + designation; ...> } ...> } | created class Employee jshell> Employee emp = new Employee("Sai", "Adithya", "Content Developer"); emp ==> Name = Sai, Adithya | designation = Content Developer