import java.util.*; 和 import java.util.* 有什么区别?并导入 java.util.Date; ?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1649430/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-12 18:40:11  来源:igfitidea点击:

What's the difference between import java.util.*; and import java.util.Date; ?

javaimport

提问by EthanZ6174

I just want to output current and I wrote

我只想输出电流,我写了

import java.util.*;

at beginning, and

一开始,和

System.out.println(new Date());

in the main part.

在主要部分。

But what I got was something like this:

但我得到的是这样的:

Date@124bbbf

When I change the import to import java.util.Date;the code works perfectly, why?

当我将导入更改为import java.util.Date;代码工作正常时,为什么?

====================================

====================================

The problem was, OK, my source file was "Date.java", that's the cause.

问题是,好吧,我的源文件是“Date.java”,这就是原因。

Well, it is all my fault, I confused everybody around ;P

好吧,这都是我的错,我把周围的人都弄糊涂了;P

And thanks to everyone below. It's really NICE OF YOU ;)

并感谢下面的每一个人。你真的很好 ;)

采纳答案by sleske

You probably have some other "Date" class imported somewhere (or you have a Date class in you package, which does not need to be imported). With "import java.util.*" you are using the "other" Date. In this case it's best to explicitly specify java.util.Date in the code.

您可能在某处导入了其他一些“Date”类(或者您的包中有一个 Date 类,不需要导入)。使用“import java.util.*”,您使用的是“其他”日期。在这种情况下,最好在代码中明确指定 java.util.Date。

Or better, try to avoid naming your classes "Date".

或者更好的是,尽量避免将您的类命名为“日期”。

回答by cherouvim

Your program should work exactly the same with either import java.util.*;or import java.util.Date;. There has to be something else you did in between.

您的程序应该与import java.util.*;完全相同导入 java.util.Date; . 你必须在这两者之间做了一些其他的事情。

回答by Chris R

import java.util.*;

imports everything within java.util including the Date class.

导入 java.util 中的所有内容,包括 Date 类。

import java.util.Date;

just imports the Date class.

只导入 Date 类。

Doing either of these could not make any difference.

执行其中任何一个都没有任何区别。

回答by Vijay Dev

but what I got is something like this: Date@124bbbf  
while I change the import to: import java.util.Date;  
the code works perfectly, why? 

What do you mean by "works perfectly"? The output of printing a Date object is the same no matter whether you imported java.util.* or java.util.Date. The output that you get when printing objects is the representation of the object by the toString() method of the corresponding class.

“完美运行”是什么意思?无论您导入 java.util.* 还是 java.util.Date,打印 Date 对象的输出都是相同的。打印对象时得到的输出是相应类的 toString() 方法对对象的表示。

回答by Fedearne

The toString()implementation of java.util.Datedoes not depend on the way the class is imported. It always returns a nice formatted date.

toString()实现java.util.Date不依赖于类的导入方式。它总是返回一个很好的格式化日期。

The toString()you see comes from another class.

toString()你看到来自另一个类。

Specific import have precedence over wildcard imports.

特定导入优先于通配符导入。

in this case

在这种情况下

import other.Date
import java.util.*

new Date();

refers to other.Dateand not java.util.Date.

other.Date而不是java.util.Date

The odd thing is that

奇怪的是

import other.*
import java.util.*

Should give you a compiler error stating that the reference to Date is ambiguous because both other.Dateand java.util.Datematches.

如果给你一个编译器错误,指出参考日期是模糊的,因为这两个other.Datejava.util.Date匹配。