Ne peut pas importer statique statique intérieur de la classe?
J'ai une classe A
avec un statique à l'intérieur de la classe à l'intérieur, il a appelé B
:
import static A.B.*;
class A {
static class B {
static int x;
static int y;
}
public static void main(String[] args) {
System.out.println(x);
}
}
Je veux statique tout importer dans B
, mais il l'habitude de travailler:
$ javac A.java
A.java:1: package A does not exist
import static A.B.*;
^
A.java:9: cannot find symbol
symbol : variable x
location: class A
System.out.println(x);
^
2 errors
Pourquoi?
Vous devez vous connecter pour publier un commentaire.
Cela ne fonctionnera pas si
A
est dans le package par défaut. Cependant, vous pouvez ajouter un paquet de déclaration:et l'utilisation
La statique de l'importation de la syntaxe à partir de la JLS est donné:
où TypeName est nécessaire pour être complet.
Dans À L'Aide De Paquet Membres la
static import
syntaxe est donnée avec le nom du package inclus:Il est recommandé de à utiliser
static
importations avec beaucoup de parcimonie.Il devrait être
Si Un est dans le package par défaut, ce sera un échec.
Dernier, c'est pas une bonne pratique pour importer
*
. Il suffit d'importer seulement les choses que vous avez besoin, dans ce cas -import static <the-package-for-the-class-A>.A.B.x;
si vous allez utiliser uniquement lex
variable.