// imports all classes of util package
import java.util.*;
// imports Scanner class of util package
import java.util.Scanner;
// what does this do?
import java.util.Scanner.*;
Run Code Online (Sandbox Code Playgroud)
这是Scanner一个包吗?
编辑:好的,所以import java.util.Scanner.*导入公共嵌套类.但是,如果还有一个名为的包Scanner呢?那声明会import java.util.Scanner.*做什么呢?
ars*_*jii 18
import java.util.Scanner;
Run Code Online (Sandbox Code Playgroud)
这导入Scanner(如您所知).
import java.util.Scanner.*;
Run Code Online (Sandbox Code Playgroud)
这会导入其中定义的所有公共嵌套类Scanner.
这个特殊的import语句是无用的,因为Scanner没有定义任何嵌套类(并且导入不会导入Scanner自身).但是,这可以与类似的东西一起使用import java.util.Map.*,在这种情况下Entry(Map在处理地图时通常使用嵌套的界面)将被导入.我确信有更好的例子,这只是想到的那个.
所有这些都在JLS§7.5中指定(具体来说,参见§7.5.1:单一类型导入声明).
响应OP的编辑:
好的,导入
java.util.Scanner.*导入公共嵌套类.但是,如果还有一个名为的包Scanner呢?那声明会import java.util.Scanner.*做什么呢?
在这种情况下会出现编译错误,因为包java.util.Scanner会与类型发生冲突java.util.Scanner.
ktm*_*124 16
classname后面的星号导入公共嵌套类.
来自Java教程:
注意:另一种不太常见的导入形式允许您导入封闭类的公共嵌套类.例如,如果graphics.Rectangle类包含有用的嵌套类(如Rectangle.DoubleWide和Rectangle.Square),则可以使用以下两个语句导入Rectangle及其嵌套类.
import graphics.Rectangle;
import graphics.Rectangle.*;
Run Code Online (Sandbox Code Playgroud)
请注意,第二个import语句不会导入Rectangle.