I casi in cui le importazioni in Java non sono necessari (qualificazione insolito) [Domanda Edited]

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

  •  11-10-2019
  •  | 
  •  

Domanda

Ho notato che ci sono alcuni modi speciali per qualificarsi un'entità in Java:

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

In questo caso, stiamo qualificanti la classe interna con la classe esterno, quindi abbiamo solo bisogno di importare la classe esterno:

import mypackage.Outer;

Ci sono altri casi come questo? (Cioè, dove un insolita di qualificazione avviene - dalla inusuale io non intendo: fullQualifier.identifier).

Sono esclusi i casi delle importazioni automatici (java.lang, tipi primitivi, ecc.)

È stato utile?

Soluzione

Credo che si fraintendono il costrutto che hai descritto:

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

è in realtà un modo per qualificare completamente il costruttore della classe Inner, proprio come in

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

D'altra parte, si potrebbe scrivere questo:

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

// ...

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

Altri suggerimenti

Inoltre, non avrebbe bisogno di importare una classe se:

  • si utilizza il percorso completo per l'oggetto. Ad esempio:

    java.util.Date d = new java.util.Date();
    
  • la classe è nella stessa confezione

  • la classe è nel pacchetto java.lang esempio String

l'imballaggio esterno in questo caso compresa la confezione interna, ecco perché non c'era bisogno ti importare il pacchetto interno, nella maggior parte dei casi non v'è alcuna necessità di importare un intero pacchetto solo per utilizzare un componente ..per esempio voglio solo per usare una stringa, non c'è bisogno ti importare l'intero java.lang. In alcuni complicato utilizzo librerie se si utilizza alcuni IDE possono risolvere le importazioni per voi, per esempio in NetBeans CTRL + MAIUSC + io risolvere il tuo importazioni

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top