【问题标题】:What's the difference between import java.util.*; and import java.util.Date; ?import java.util.*; 有什么区别?并导入 java.util.Date; ?
【发布时间】:2010-12-11 14:08:21
【问题描述】:

我只想输出电流,我写了

import java.util.*;

在开头,并且

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

在主要部分。

但我得到的是这样的:

Date@124bbbf

当我将导入更改为import java.util.Date; 时,代码运行良好,为什么?

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

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

嗯,都是我的错,我把周围的人都搞糊涂了;P

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

【问题讨论】:

标签: java import


【解决方案1】:

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

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

【讨论】:

【解决方案2】:

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

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

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

在这种情况下

import other.Date
import java.util.*

new Date();

指的是other.Date,而不是java.util.Date

奇怪的是

import other.*
import java.util.*

应该给您一个编译器错误,指出对 Date 的引用不明确,因为 other.Datejava.util.Date 都匹配。

【讨论】:

    【解决方案3】:
    import java.util.*;
    

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

    import java.util.Date;
    

    只需导入 Date 类。

    做这些都不会有任何区别。

    【讨论】:

      【解决方案4】:

      您的程序应该与 import java.util.*;import java.util.Date; 完全相同。中间一定有你做的其他事情。

      【讨论】:

      • 感谢您回答问题,我知道它们之间没有区别,除非我将 src 命名为“Date.java” ...:(
      【解决方案5】:
      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? 
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-21
        • 1970-01-01
        • 1970-01-01
        • 2015-01-14
        • 1970-01-01
        • 2020-07-23
        • 2017-04-20
        • 2012-01-15
        相关资源
        最近更新 更多