JShell main()을 선언하지 않고도 프로그래머가 간단한 명령문, 표현식, 변수, 메소드, 클래스, 인터페이스 등을 실행할 수 있도록 하는 Java 9 버전에 도입된 명령줄 대화형 도구입니다. 방법.
JShell에서 컴파일러는 프로그래머에게 타입 캐스팅 에 대해 경고합니다. 오류를 발생시켜 문제를 해결합니다. 그러나 프로그래머가 알고 있는 경우 명시적 캐스팅 필요합니다. 더 작은 데이터 값을 더 큰 유형에 저장해야 하는 경우 변환 후 암시적 캐스팅 필요합니다.
정수 에는 두 가지 종류가 있습니다. 타이프캐스팅 :
- 리터럴 대 변수 할당: 예를 들어, 짧은 s1 =123456 , 데이터가 범위를 벗어났습니다. 컴파일 시간에 알려져 있습니다. , 그리고 컴파일러는 오류 플래그를 지정합니다.
- 변수 대 변수 할당: 예를 들어, s1 =i1 . 해당 단계에서 int에 저장된 값:4567, 이는 short 유형의 범위 내에 있으며 컴파일러는 오류를 발생시키지 않습니다. 명시적 캐스팅 s1 =(short) i1으로 선점할 수 있습니다. .
아래 코드 스니펫에서 암시적 및 명시적 유형 변환을 모두 구현할 수 있습니다.
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