2015-06-25 11 views
5

Sono un po 'sconcertato:Matrici casuali consentite nella sintassi Java?

Stavo scrivendo un po' di codice per la mia applicazione e ho fatto un refuso. Ho aggiunto parentesi quadre, invece del p. Smart Eclipse ha aggiunto l'altra staffa per me. Con mia sorpresa, non è comparso alcun avviso, su eventuali errori di sintassi.

System.setProperty("apple.laf.useScreenMenuBar", "true");[] 
// No Warnings or Errors?!?!? 
this.initalize(); 

io possa aggiungere in qualsiasi parte costruttori ei metodi, ma non dove al di fuori di questo. Ho continuato a sperimentare:

this.initalize();[][][] 
// this.parent.setJMenuBar(this); 
this.setVisible(true); 

posso avere più array ...

this.initalize();[[]] // Syntax Error, delete this token 
//this.parent.setJMenuBar(this); 
this.setVisible(true); 

Ma niente nidificato.

Ho provato un po 'di più ... Ottengo errori in determinati posti.

JMenuItem help_about = new JMenuItem("About the Developers..."); 
[] // Error! 
help_help.setToolTipText("Access the help center"); 

punto e virgola rendono questi incline all'errore:

[]; // Error! 

Sembra come se posso mettere queste staffe ovunque fino a quando non v'è una parola chiave riservata che segue ...

[] 
return view; // No Errors here... 

Non cambia nulla mentre salvi il codice, riavvio Eclipse o altro. Un po 'di informazioni sul mio sistema:

  • Eclipse Luna 4.4.2
  • Livello di conformità 1.6
  • Java 7 (credo) No! Java versione 1.6.0_65

Quindi, ecco la mia domanda ...

  • È questo un bug con Eclipse?
  • È qualcosa di non intenzionale con la sintassi java?
  • Oppure, è ...

Non è un bug ... è una caratteristica !!!

+1

Forse il tuo Eclipse non si è aggiornato? Ho provato a duplicare i "non errori" ma ho evidenziato la sintassi e gli errori.A volte, Eclipse non mostra subito l'evidenziazione degli errori perché non ha analizzato il codice per qualche motivo. Quindi, direi, è solo Eclipse che impiega troppo tempo o si congela. Non è davvero un bug, ma un evento comune. Forse prova a chiudere e riaprire Eclipse. –

+0

Sicuro. Lo farò adesso ... – Zizouz212

+0

Hai provato a compilare all'esterno di Eclipse usando 'javac' e il prompt dei comandi? Ma sì, sarebbe bello se Jay Gosling avesse creato Java con funzionalità nascoste, un po 'come il mondo meno nel gioco originale di Super Mario Brothers Nintendo. –

risposta

0

Non è né un bug di eclipse né una funzionalità fornita da java.
Ho eseguito lo stesso codice in Eclipse Luna 4.4.0 e con java 7 e mi dà errore.
Come viene commentato da Sotirios, non è una sintassi valida.
D'altra parte se hai scritto ; o {} nello stesso modo in cui stai usando [], non ti daranno errori. Ma è perché il compilatore java lo capisce e sono validi.

Così si potrebbe non essere sempre l'errore può essere dovuto ad altre ragioni, come può essere Eclipse non hanno compilato il codice quando l'hai visto privo di errori o può essere che sta prendendo troppo tempo, per qualche motivo, ecc

+0

Aggiungendo un punto e virgola dopo che le parentesi riportano subito l'errore, e non le parentesi non denunciano un codice? Dichiarazione di completamento di un punto e virgola, che può essere vuota. Non è la stessa cosa che sembra ... – Zizouz212

+0

No, usare il punto e virgola non darà errore (fino a quando non modifica la sintassi di alcune altre istruzioni) e sì, non dovremmo usare '{}' in questo modo ma il punto è che lo faranno non dare errore – afzalex

+0

Ma il confronto non è valido. È già noto. Cosa denunciano le parentesi quadre? Perché sta succedendo? – Zizouz212