Quando provo a creare un pacchetto implements
usando Intellij (edizione community) ho ricevuto il messaggio Not a valid package name
. Questo è dovuto alla parola chiave utilizzata?Il nome del pacchetto Java può essere una parola chiave?
risposta
È questo a causa della parola chiave utilizzata?
Sì, un nome del pacchetto ha il following form
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
dove Identifier
è
Identifier:
IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral
IdentifierChars:
JavaLetter {JavaLetterOrDigit}
JavaLetter:
any Unicode character that is a "Java letter"
JavaLetterOrDigit:
any Unicode character that is a "Java letter-or-digit"
Quindi keywords non possono essere utilizzati.
Per curiosità, conosci qualche esempio di "PackageModifier"? Il JLS dice che deve essere un'annotazione, ma non ho mai visto un simile uso prima. – asteri
@JeffGohlke Non è molto comune ma è possibile annotare i pacchetti. Pensa al file 'package-info.java'. Vedi [qui] (http://stackoverflow.com/questions/7501494/what-is-jaxb-generated-package-info-java) per un esempio JAXB. –
@JeffGohlke http://stackoverflow.com/questions/2099431/whats-the-point-of-package-annotations – yshavit
Non è possibile utilizzare una parola chiave java nella dichiarazione pacchetto.
abstract continue for new switch
assert default if package synchronized
boolean do goto private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
Questi keyworkds non possono essere utilizzati.
la sintassi della dichiarazione pacchetto è
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
Qui identificatori sono qualsiasi carattere Unicode che è una "lettera Java" o qualsiasi carattere Unicode che è una "lettera-o cifre Java".
Le "lettere Java" includono lettere latine ASCII maiuscole e minuscole AZ (\ u0041- \ u005a) e az (\ u0061- \ u007a), e, per ragioni storiche, il carattere di sottolineatura ASCII (_, o \ u005f) e simbolo del dollaro ($ o \ u0024). Il segno $ deve essere utilizzato solo in codice sorgente generato meccanicamente o, raramente, per accedere a nomi preesistenti su sistemi legacy.
consultare
Non è possibile utilizzare una parola chiave Java come nome del pacchetto. Vedere JLS on Names e Identifiers
Questo funziona bene per me, in Intellij 13.1.2, tuttavia, non è possibile utilizzare un pacchetto con questo nome, anche se si crea uno, perché l'istruzione java package
non accetterà una parola chiave da nessuna parte nei nomi dei pacchetti. Quindi, posso creare, ma non posso usare:
package com.implements.thing;
- 1. Scala: parola chiave come nome pacchetto
- 2. Macro/parola chiave che può essere utilizzata per stampare il nome del metodo?
- 3. La parola chiave django non può essere un'espressione
- 4. Il nome è una parola chiave speciale in PostgreSQL?
- 5. Può una matrice java essere usato come un HashMap chiave
- 6. Parola chiave del metodo Java "final" e il suo utilizzo
- 7. null è una parola chiave Java?
- 8. Java: interfaccia con una nuova parola chiave come è possibile?
- 9. utilizzando il nome del pacchetto per creare oggetti in Java
- 10. avviare l'applicazione conoscendo il nome del pacchetto
- 11. accesso .Net campo da F #, quando il nome del campo è una parola chiave riservata
- 12. Come si può aggiungere una nuova parola chiave a clang, una parola chiave che sarebbe trattata come principale?
- 13. Nome della tabella Hive è ora una parola chiave riservata
- 14. Come ottenere il nome di una classe senza il pacchetto?
- 15. Come si usa una parola chiave riservata C# come nome di una proprietà senza il prefisso @?
- 16. non può essere utilizzato come tipo del pacchetto venduto
- 17. ReSharper può usare la parola chiave per le dichiarazioni ma il nome del tipo per l'accesso ai membri?
- 18. In Java, il nome della variabile può essere uguale al nome della classe
- 19. nidificati sincronizzato parola chiave
- 20. parola chiave asincrona e scelta del TaskScheduler
- 21. Ruolo della nuova parola chiave in Java
- 22. errore RC2104: parola chiave non definito o il nome chiave: WS_EX_LAYOUTRTL
- 23. android, come ottenere il nome del pacchetto?
- 24. Perl richiede il nome del pacchetto esplicito
- 25. Java: quando utilizzare la parola chiave "this"
- 26. Come INSERT a una colonna il cui nome è una parola chiave sql
- 27. Il nome del metodo 'catch' di JS Promises/A + non è valido poiché si tratta di una parola chiave JS?
- 28. La parola chiave "this" può essere utilizzata con i tipi di valore?
- 29. Il traffico su loopback può essere annusato nel pacchetto?
- 30. L'utilizzo di questa parola chiave Java
[Convenzioni di denominazione Java Package] (http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). Questo potrebbe fornire alcune informazioni. – csmckelvey
No, non può essere il nome del pacchetto ... il nome del pacchetto non deve essere una qualsiasi parola chiave java come int, classe, implementazioni –