티스토리 뷰

책이 정식으로 출판된 이후 여러가지 문의나 오류에 대한 지적이 있었다. 너무나 날카로운 지적이라 나의 무지함이 드러나 부그러웠고 어떤 경우는 받아들일 수 없는 지적인 경우도 있었다. 무엇이 되었건 상관 없이 이 책에 대한 관심이라 생각하고 겸허히 받아들이려 노력중이다.

 

그 중 자바 10에 추가된 var 에 대한 것으로 책에서는 키워드로 적었지만 언어적으로는 키워드가 아니라는 지적이였다.

 

namocom.tistory.com/930

 

[Java] var는 키워드가 아니다.

"개발하자" 라는 슬랙에서 이석민(닉네임 lee_maru)님이 "var는 키워드가 아닙니다."라는 이야기를 해서 찾아보게 되었다. 자바언어 규약(JLS)를 찾아보니 var는 키워드가 아니라고 한다. var is not a 

namocom.tistory.com

 

독자의 피드백을 받은 것은 아니고, 인터넷 서핑중에 발견한 내용이였다. 해당 블로그에 언급된 것처럼 var는 키워드는 아니고 "예약된 식별자"가 맞다. wikipedia에 자바 관련 예약어 목록을 확인할 수 있는데 자바 5에서 enum이 키워드로 추가되면서 발생한 혼란을 방지하기 위해 그 이후에는 "Reserved Identifiers"로 추가된 것을 볼 수 있다.

 

en.wikipedia.org/wiki/List_of_Java_keywords

 

List of Java keywords

A snippet of Java code with keywords highlighted in blue and bold font In the Java programming language, a keyword is any one of 52 reserved words[1] that have a predefined meaning in the language; because of this, programmers cannot use keywords as names

en.wikipedia.org

그렇다면 Keyword와 Reserved Identifier는 어떤 차이가 있을까? 둘다 예약어로써 사용되지만 "Reserved Identifier"는 변수명으로 사용이 가능한 반면 Keyword는 변수명으로 선언할 수 없다.

 

 JShell에서 다음과 같이 간편하게 확인할 수 있다.

C:\tools\Java\openjdk-15\bin>jshell
|  Welcome to JShell -- Version 15
|  For an introduction type: /help intro

jshell> import java.util.*

jshell> var var = new ArrayList<String>();
var ==> []

jshell> var enum = new ArrayList<String>();
|  Error:
|  as of release 5, 'enum' is a keyword, and may not be used as an identifier
|  var enum = new ArrayList<String>();
|      ^

jshell>

 

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함