java - Syntax Error: Import statement with multiple semi-colon -


this might weird question, valid one. know below statement not have compilation error:

arraylist list = new arraylist();;; //(with 3 `;` semi-colon) 

okay have written below import statement:

import java.util.arraylist;;; (with 3 `;` semi-colon) 

but got below compilation error:

syntax error on token ";", invalid staticimportondemanddeclarationname 

why?

what have here:

arraylist list = new arraylist();;; //(with 3 `;` semi-colon) 

is not statement terminated 3 semi-colons. it's statement terminated 1 semi-colon, followed 2 empty statements.

an empty statement legal in java, import section of java source file not comprised of statements, it's comprised of import declarations.

jls 14.6 defines empty statement:

an empty statement nothing.

  emptystatement:      ; 

execution of empty statement completes normally.

a perhaps-legitimate use of empty statement:

//loop forever while (true) {;} // body of loop empty statement. 

in other words, in first example, have assignment followed 2 empty statements. semicolons not strictly superfluous.

the import section has own grammar, , none of grammar rules allow arbitrary semi-colon. grammar specified jls 7.5:

importdeclaration:     singletypeimportdeclaration     typeimportondemanddeclaration        singlestaticimportdeclaration        staticimportondemanddeclaration  singletypeimportdeclaration:     import typename ;  ... 

Comments

Popular posts from this blog

javascript - Jquery show_hide, what to add in order to make the page scroll to the bottom of the hidden field once button is clicked -

javascript - Highcharts multi-color line -

javascript - Enter key does not work in search box -