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

Eth*_*174 8 java import

我只想输出电流而且我写了

import java.util.*;
Run Code Online (Sandbox Code Playgroud)

在开始时,和

System.out.println(new Date());
Run Code Online (Sandbox Code Playgroud)

在主要部分.

但我得到的是这样的:

Date@124bbbf
Run Code Online (Sandbox Code Playgroud)

当我将导入更改为import java.util.Date;代码完美时,为什么?

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

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

嗯,这完全是我的错,我让所有人感到困惑; P

谢谢以下所有人.这真的很好你;)

sle*_*ske 12

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

或者更好,尽量避免命名您的类"日期".

  • @ EthanZ6174:请参阅Java Puzzlers的此示例列表中的Puzzle 7 - http://www.javapuzzlers.com/java-puzzlers-sampler.pdf.这本书是任何Java程序员的明确推荐! (2认同)

Fed*_*rne 5

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

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

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

在这种情况下

import other.Date
import java.util.*

new Date();
Run Code Online (Sandbox Code Playgroud)

是指other.Date而非java.util.Date.

奇怪的是

import other.*
import java.util.*
Run Code Online (Sandbox Code Playgroud)

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