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

Java 9의 JShell에서 정방향 참조는 무엇입니까?


JShell 명령줄입니다. 도구 Java 명령문(단순 명령문, 복합 명령문 또는 전체 메소드 및 클래스)을 입력하고 평가하고 결과를 인쇄할 수 있도록 하는 도구입니다.

앞으로 참조 메서드를 참조하는 명령입니다. , 변수 , 또는 클래스 JShell에 입력한 코드에는 존재하지 않습니다. JShell에 코드가 입력되고 순차적으로 평가됨에 따라 이러한 전달 참조 일시적으로 해결되지 않았습니다. JShell은 메서드 에서 전방 참조를 지원합니다. 본체 , 반환 유형 , 매개변수 유형 , 변수 유형 , 및 클래스 .

아래 코드 스니펫에서 forwardReference() 메서드를 생성했습니다. 제이쉘에서. 이 메서드는 변수가 선언될 때까지 호출할 수 없습니다. 이 메서드를 호출하려고 하면 다음과 같은 경고 메시지가 표시됩니다. "notYetDeclared 변수가 선언될 때까지 호출할 수 없는 forwardReference() 메서드를 호출하려고 했습니다. "

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

jshell> void forwardReference() {
...>       System.out.println(notYetDeclared);
...>    }
| created method forwardReference(), however, it cannot be invoked until variable notYetDeclared is declared

jshell> forwardReference()
| attempted to call method forwardReference() which cannot be invoked until variable notYetDeclared is declared


아래 코드 스니펫에서 "notYetDeclared " 문자열을 반환하는 변수입니다. 마지막으로 forwardReference()를 호출하면 JShell에서 "변수가 선언됨"을 인쇄합니다. .

jshell> String notYetDeclared = "variable is declared"
notYetDeclared ==> "variable is declared"

jshell> forwardReference()
variable is declared