// 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.*;Scanner是这里的一个包吗?
编辑: Ok,所以import java.util.Scanner.*导入公共嵌套类。但是,如果还有一个名为Scanner的包呢?那么import java.util.Scanner.*语句会做什么呢?
发布于 2013-08-06 00:40:51
import java.util.Scanner;这将导入Scanner (正如您已经知道的)。
import java.util.Scanner.*;这将导入在Scanner中定义的任何公共nested classes。
这个特定的import语句是无用的,因为Scanner没有定义任何嵌套类(并且import本身不会导入Scanner )。但是,这可以与import java.util.Map.*之类的东西一起使用,在这种情况下,Entry (嵌套在Map中的接口,在处理地图时通常使用)将被导入。我相信还有更好的例子,这只是我脑海中浮现的一个。
所有这些都在JLS §7.5中指定(具体地说,请参阅§7.5.1: Single-Type-Import Declarations)。
作为对OP编辑的响应:
Ok,所以导入
java.util.Scanner.*会导入公共嵌套类。但是,如果还有一个名为Scanner的包呢?那么import java.util.Scanner.*语句会做什么呢?
在这种情况下,由于包java.util.Scanner将与类型java.util.Scanner冲突,因此会出现编译错误。
发布于 2013-08-06 00:41:06
类名后面的星号导入公共嵌套类。
从Java Tutorials
注意:另一种不太常见的导入形式允许您导入封闭类的公共嵌套类。例如,如果graphics.Rectangle类包含有用的嵌套类(如Rectangle.DoubleWide和Rectangle.Square ),则可以使用以下两条语句导入Rectangle及其嵌套类。
import graphics.Rectangle;
import graphics.Rectangle.*; 请注意,第二个import语句不会导入矩形。
https://stackoverflow.com/questions/18063287
复制相似问题