Monday, March 28, 2011

Is null a Java keyword?

Is null is a keyword in Java?

From stackoverflow
  • No.It is not a keyword.

  • Not according to the Java Language Specification list of keywords. On the other hand, this doesn't compile:

    int null = 10;
    

    The rules for identifiers specify that:

    An identifier is an unlimited-length sequence of Java letters and Java digits, the first of which must be a Java letter. An identifier cannot have the same spelling (Unicode character sequence) as a keyword (§3.9), boolean literal (§3.10.3), or the null literal (§3.10.7).

    I'm not sure what the benefit of making it not-a-keyword is, to be honest.

    Gamecat : Lol, this answer implies that there are implementations of Java that accept null as a keyword.
    tehvan : Gamecat, the way i read it, it says clearly the spec does _not_ consider null a keyword.
  • Not a keyword - the null literal.

    an identifier (oops, no it isn't)

    Jon Skeet : It's not an identifier either, according to http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625
    Marc Gravell : Yes, I realised by mistake already and fixed it...
    Tom Hawtin - tackline : Up vote just because it's a trick question...
  • No. See this for complete list KeywordList

  • true and false are also literals. Java trivia: const and goto are keywords.

  • null is a literal, in the same sense that false, 10, and '\n' are literals. It's not a "keyword", technically, but it is a character string that is treated specially by the compiler if the compiler encounters it in a java source file.

    So, no, you cannot name a variable "null". The lexical analyzer will decide that it is not an identifier.

0 comments:

Post a Comment