Kiedy próbuję utworzyć pakiet implements
przy użyciu Intellij (wydanie społecznościowe), otrzymałem wiadomość Not a valid package name
. Czy to z powodu użycia słowa kluczowego?Czy nazwa pakietu Java może być słowem kluczowym?
Odpowiedz
Czy to ze względu na słowo jest używane?
Tak, nazwa pakietu ma following form
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
gdzie Identifier
jest
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"
Więc keywords nie może być używany.
Z ciekawości, czy znasz jakieś przykłady "PackageModifier"? JLS mówi, że to musi być adnotacja, ale nigdy wcześniej nie widziałem takiego zastosowania. – asteri
@JeffGohlke Nie jest to zbyt częste, ale można dodawać adnotacje do pakietów. Pomyśl o pliku 'pakiet-info.java'. Zobacz [tutaj] (http://stackoverflow.com/questions/7501494/what-is-jaxb-generated-package-info-java) dla przykładu JAXB. –
@JeffGohlke http://stackoverflow.com/questions/2099431/whats-the-point-of-package-annotations – yshavit
nie można użyć słowa kluczowego java w swojej deklaracji pakietu.
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
Te klucze nie mogą być używane.
składnia deklaracji pakietu jest
PackageDeclaration:
{PackageModifier} package Identifier {. Identifier} ;
Tutaj Identyfikatory są dowolny znak Unicode, że jest to „list Java” lub dowolny znak Unicode, który jest „Java Letter lub cyfr”.
"Litery Java" zawierają wielkie i małe litery ASCII łacińskie litery AZ (\ u0041- \ u005a) i az (\ u0061- \ u007a), a ze względów historycznych podkreślenie ASCII (_ lub \ u005f) i znak dolara ($ lub \ u0024). Znak $ powinien być używany tylko w mechanicznie generowanym kodzie źródłowym lub, rzadko, w celu uzyskania dostępu do wcześniej istniejących nazw w starszych systemach.
Patrz
Nie można użyć słowa kluczowego Java jako nazwy pakietu. Zobacz JLS on Names i Identifiers
Działa to dobrze dla mnie, w IntelliJ 13.1.2, jednak nie można korzystać z pakietu o tej nazwie, nawet jeśli założyć, ponieważ oświadczenie java package
nie zaakceptuje słowa kluczowego wszędzie w nazwach pakietów. Tak, mogę tworzyć, ale nie można używać:
package com.implements.thing;
- 1. Nazwa tabeli Hive jest teraz zarezerwowanym słowem kluczowym.
- 2. Czy "plik" jest słowem kluczowym w python?
- 3. ASP.NET MVC4 ... jest "BIN" zastrzeżonym słowem kluczowym?
- 4. Jaka jest różnica między słowem kluczowym join a słowem kluczowym join w sql Oracle?
- 5. Używając Qt Creator C++ 11, nullptr jest słowem kluczowym?
- 6. Jak obsługiwać kolumnę tabeli z zastrzeżonym słowem kluczowym sql?
- 7. Czy nazwa pakietu Python może zaczynać się od cyfry?
- 8. Deklaracja zwrotu ruby nie działa z super słowem kluczowym?
- 9. najszybszy sposób wyszukiwania python dict z częściowym słowem kluczowym
- 10. Konflikt typu "rodzajowy" FreeType ze słowem kluczowym C++/cx
- 11. Czy nazwa pakietu "javax" jest nielegalna (zarezerwowana), czy nie?
- 12. Dlaczego Interfejs nie może być chronione metody
- 13. IsAssignableFrom, IsInstanceOfType i jest słowem kluczowym, jaka jest różnica?
- 14. Łączenie w lewo MySQL nie działa ze słowem kluczowym AS
- 15. błąd Nuget Package Manager: Nazwa zdalnej nie może być rozwiązany
- 16. Nazwa pakietu & Class Nazwa facebook app
- 17. Czy auto jest opcjonalnym słowem kluczowym w zakresie zależnym od pętli?
- 18. Architektura CPU Niezależne P/Wywołanie: czy nazwa lub nazwa Dll może być "dynamiczna"?
- 19. Czy lepiej używać aliasów kolumn z słowem kluczowym AS lub bez niego?
- 20. Czy powinienem napisać testy torów ze słowem kluczowym def lub test?
- 21. Czy formater Java w systemie Eclipse może być używany autonomicznie?
- 22. Czy JavaScript może być bootowany?
- 23. Python to nazwa iteracji, która może być wielokrotnie powtarzana.
- 24. Typ paczki nie może być używany jako typ pakietu dostawcy
- 25. Dlaczego argumenty w kodzie JavaScript nie są poprzedzone słowem kluczowym var?
- 26. Wartość nie może być pusta. Nazwa parametru: request
- 27. Błąd deserializacji: wartość nie może być pusta. Nazwa parametru: typ
- 28. „wartość nie może być null nazwa parametru pojemnik.” XAML
- 29. Dlaczego file_get_contents() zwraca błąd "Nazwa pliku nie może być pusta"?
- 30. Wartość MVC3 nie może być pusta. Nazwa parametru: wartość
[package Java nazewnictwa] (http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). Może to zapewnić pewien wgląd. – csmckelvey
Nie, nie może to być nazwa pakietu. Nazwa pakunku nie może być żadnym słowem kluczowym java, takim jak int, class, implements też –