Les cas où les importations en Java ne sont pas nécessaires (qualification inhabituelle) [Question Modifié]

StackOverflow https://stackoverflow.com/questions/4705343

  •  11-10-2019
  •  | 
  •  

Question

Je l'ai remarqué qu'il existe des moyens spéciaux pour qualifier une entité en Java:

Object o = new Outer().new Inner();

Dans ce cas, nous qualifions la classe intérieure avec la classe externe, donc nous ne devons importer la classe externe:

import mypackage.Outer;

Y at-il d'autres cas comme celui-ci? (C'est, où un unusual qualification se produit - par inhabituel, je veux pas dire: fullQualifier.identifier).

Je suis hors le cas des importations automatiques (java.lang, types primitifs, etc.)

Était-ce utile?

La solution

Je pense que vous méprendre sur la construction que vous avez décrit:

Object o = new Outer().new Inner();

est en fait un moyen de qualifier complètement la classe Inner constructeur, comme dans

Outer.Inner i = new Outer().new Inner();

Par contre, vous pouvez écrire ceci:

import path.to.Outer;
import path.to.Outer.Inner;

// ...

Inner i = new Outer().new Inner();

Autres conseils

, vous ne devez également importer une classe si:

  • vous utilisez le chemin complet vers l'objet. Par exemple:

    java.util.Date d = new java.util.Date();
    
  • la classe se trouve dans le même paquet

  • la classe se trouve dans le paquet, par exemple java.lang String

l'emballage extérieur dans ce cas inclus l'emballage intérieur, c'est pourquoi il n'y avait pas besoin ti importer l'emballage intérieur, dans la plupart des cas il n'y a pas besoin d'importer un package tout simplement d'utiliser un composant ..pour exemple, je veux seulement d'utiliser une chaîne, il n'y a pas besoin ti importer l'ensemble java.lang. Dans certains utilisation des bibliothèques compliquées si vous utilisez certains IDEs ils peuvent fixer les importations pour vous, par exemple dans NetBeans ctrl + shift + i fixerai vos importations

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top