import java.util.Scanner;
Ten importuje Scanner
(jak już wiesz).
import java.util.Scanner.*;
Ten importuje każdy publiczny nested classes zdefiniowane w Scanner
.
Ta szczególna instrukcja importu jest bezużyteczna, ponieważ Scanner
nie definiuje żadnych zagnieżdżonych klas (a import nie importuje samej siebie samej Scanner
). Można go jednak użyć z czymś takim, jak import java.util.Map.*
, w którym to przypadku zostanie zaimportowany Entry
(interfejs zagnieżdżony w Map
, który jest powszechnie używany podczas pracy z mapami). Jestem pewien, że są lepsze przykłady, to tylko ten, który przyszedł mi do głowy.
Wszystko to jest określone w JLS §7.5 (w szczególności, patrz §7.5.1: Single-Type-Import Declarations).
W odpowiedzi na edycję OP:
Ok więc importować java.util.Scanner.*
importuje publicznych klas zagnieżdżonych. Ale co, jeśli był również pakiet o nazwie Scanner
? Co wtedy zrobiłoby oświadczenie import java.util.Scanner.*
?
W tym przypadku nie będzie to błąd kompilacji, ponieważ pakiet java.util.Scanner
będzie kolidować z typem java.util.Scanner
.
Ta ostatnia linia nie kompiluje się, prawda? –
[Przeczytaj to] (http://docs.oracle.com/javase/tutorial/java/package/usepkgs.html). –
@ T.J.Crowder Pewnie, że to – arshajii