Fälle, in denen die Einfuhren in Java nicht benötigt werden (ungewöhnliche Qualifikation) [Frage Edited]

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

  •  11-10-2019
  •  | 
  •  

Frage

Ich habe bemerkt, gibt es einige spezielle Möglichkeiten, um eine Einheit in Java zu qualifizieren:

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

In diesem Fall qualifizieren wir die Inner-Klasse mit der äußeren Klasse, so dass wir nur die äußeree Klasse importieren müssen:

import mypackage.Outer;

Gibt es noch andere Fälle wie diese? (Das heißt, wenn eine Unusual Qualifizierung erfolgt - durch ungewöhnliche meine ich nicht: fullQualifier.identifier).

Ich bin mit Ausnahme des Falls des automatischen Imports (java.lang, Urtyp, usw.)

War es hilfreich?

Lösung

Ich glaube, Sie mißverstehen das Konstrukt Sie beschrieben haben:

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

ist tatsächlich ein Weg, um vollständig die Inner Klasse Konstruktor zu qualifizieren, wie in

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

Auf der anderen Seite, könnten Sie schreiben Sie:

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

// ...

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

Andere Tipps

Außerdem würden Sie nicht brauchen, um eine Klasse zu importieren, wenn:

  • Verwenden Sie den vollständigen Pfad zum Objekt. Zum Beispiel:

    java.util.Date d = new java.util.Date();
    
  • Die Klasse ist in dem gleichen Paket

  • ist die Klasse, in dem java.lang Paket z.B. String

die äußere Verpackung in diesem Fall das innere Paket enthalten, das ist, warum es nicht notwendig war, die innere Verpackung ti zu importieren, in den meisten Fällen gibt es keine Notwendigkeit, ein ganzes Paket zu importieren, nur ..für Beispiel eine Komponente zu verwenden, nur ich will einen String zu verwenden, gibt es keine Notwendigkeit, die ganze java.lang ti zu importieren. In einigen komplizierten Bibliotheken Verwendung, wenn Sie einige IDEs verwenden, können sie die Importe für Sie beheben, beispielsweise in netbeans Strg + Shift + i Ihre Importe beheben

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top