В чем разница между импортом java.util. *; и импортировать java.util.Date; ? - PullRequest
8 голосов
/ 30 октября 2009

Я просто хочу вывести ток, и я написал

import java.util.*;

в начале и

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

в основной части.

Но то, что я получил, было примерно так:

Date@124bbbf

Когда я изменяю импорт на import java.util.Date; код работает отлично, почему?

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

Проблема была в том, что мой исходный файл был «Date.java», вот причина.

Ну, это все моя вина, я всех запутал вокруг; P

И спасибо всем ниже. Это очень мило с вашей стороны;)

Ответы [ 5 ]

12 голосов
/ 30 октября 2009

Возможно, у вас где-то импортирован какой-то другой класс "Date" (или у вас есть класс Date в вашем пакете, который не нужно импортировать). С помощью «import java.util. *» Вы используете «другую» дату. В этом случае лучше явно указать java.util.Date в коде.

Или лучше, старайтесь не называть ваши классы "Дата".

5 голосов
/ 30 октября 2009

Реализация toString() java.util.Date не зависит от способа импорта класса. Всегда возвращает хорошую отформатированную дату.

toString(), который вы видите, происходит из другого класса.

Определенный импорт имеет приоритет над импортом подстановочных знаков.

в этом случае

import other.Date
import java.util.*

new Date();

относится к other.Date, а не java.util.Date.

Странно, что

import other.*
import java.util.*

Должно появиться сообщение об ошибке компилятора о том, что ссылка на Date неоднозначна, поскольку совпадают и other.Date, и java.util.Date.

4 голосов
/ 30 октября 2009
import java.util.*;

импортирует все в java.util, включая класс Date.

import java.util.Date;

просто импортирует класс Date.

Выполнение любого из них не могло иметь никакого значения.

2 голосов
/ 30 октября 2009

Ваша программа должна работать точно так же с import java.util. *; или import java.util.Date; . Между вами должно быть что-то еще.

0 голосов
/ 30 октября 2009
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? 

Что вы подразумеваете под «отлично работает»? Результат печати объекта Date одинаков независимо от того, импортированы ли вы java.util. * Или java.util.Date. Выходные данные, которые вы получаете при печати объектов, представляют собой представление объекта методом toString () соответствующего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...