gpt4 book ai didi

java - java.util.Scanner 和 java.util.Scanner.* 之间的区别

转载 作者:太空狗 更新时间:2023-10-29 22:32:39 26 4
gpt4 key购买 nike

// 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包吗?

编辑: 好的,所以 import java.util.Scanner.* 导入公共(public)嵌套类。但是如果还有一个名为 Scanner 的包呢?那么 import java.util.Scanner.* 语句会做什么?

最佳答案

import java.util.Scanner;

这会导入 Scanner(如您所知)。

import java.util.Scanner.*;

导入任何公共(public) nested classesScanner 中定义。

这个特定的 import 语句是无用的,因为 Scanner 没有定义任何嵌套类(并且导入没有导入 Scanner 本身)。但是,这可以与 import java.util.Map.* 之类的东西一起使用,在这种情况下 Entry (嵌套在 Map 中的接口(interface),通常在处理 map 时使用)将被导入。我敢肯定还有更好的例子,这只是我想到的一个。

所有这些都在 JLS §7.5 中指定(具体请参见 §7.5.1: Single-Type-Import Declarations)。


响应 OP 的编辑:

Ok so import java.util.Scanner.* imports the public nested classes. But what if there was also a package called Scanner? What would the statement import java.util.Scanner.* do then?

在这种情况下会出现编译错误,因为包 java.util.Scanner 会与类型 java.util.Scanner 发生冲突。

关于java - java.util.Scanner 和 java.util.Scanner.* 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com