Подтвердить что ты не робот

Конструктор Date (...) устарел. Что это значит? (Ява)

Я пытаюсь создать Date как это:

date = new Date(year-1900, mon-1, day, hrs, min, sec);

и Eclipse выдает мне это предупреждение: "Конструктор Date(int, int, int, int, int) устарел".

Что означает, что конструктор устарел, и что я могу сделать?

4b9b3361

Ответ 1

Устаревшее буквально означает отклонение, но более точный перевод будет удален. Устаревший означает, что этот метод по-прежнему можно использовать, но вы не должны его использовать. Он постепенно будет постепенно сокращаться. Существует новый способ сделать то же самое. Устаревшие методы отмечены специальным комментарием Javadoc:

/**
 *@deprecated Please now use newMethod()
 *@see newMethod()
 */

Использование

  • Calendar.set(year + 1900, month, date, hrs, min)

или

  • GregorianCalendar(year + 1900, month, date, hrs, min).

Как предложено по документации API.

Ответ 2

Это означает, что вы не должны использовать его в новом коде. Обычно это так, если сейчас есть лучший способ достижения чего-то, но для обратной совместимости поддерживается старый способ.

Вместо этого, вы можете использовать Calendar API, так как полное сообщение, мы надеемся, предлагает Вам - или (лучше IMO), вы можете использовать Joda время или java.time пакет в Java 8 (см учебник). Оба из них намного лучше API даты/времени. к

Когда дело доходит до устаревших API, если сообщение компилятора не предлагает альтернативы, всегда стоит взглянуть на Javadoc - который в этом случае предлагает использовать Calendar.set(...).

Ответ 3

Это означает, что вы не должны использовать его в новом коде, потому что это опасно или потому, что существует лучшая альтернатива. Компиляторы предупреждают, когда устаревший программный элемент используется или переопределяется в не устаревшем коде.

В вашем случае вы можете использовать java.util.Calendar вместо java.util.Date.

Кстати, в Java 8 и более поздних версиях эти старые классы вытесняются новым пакетом java.time (Tutorial). Вдохновленный Joda-Time, определенный JSR 310, и расширен с помощью проекта ThreeTen Extra. Старые классы остаются на месте, и вы можете продолжать их использовать (избегая устаревших частей), но вам предлагается перейти на новые классы.

Ответ 4

Устаревшее означает, что это старый или старый способ сделать что-то, и его следует избегать.

В соответствии с этим документом http://java.sun.com/j2se/1.4.2/docs/api/java/util/Date.html используйте Calendar.set(...).

Ответ 5

Вот фрагмент кода, который поможет вам выполнить миграцию кода. Оба изображения одинаковы.

import java.util.Calendar;
import java.util.Date;

public class Tinker {

    public static void main(String[] args) {

        int Y = 2015; // Year 2015
        int M = 11;   // 0..11 -- December
        int D = 15;   // 15th
        int H = 16;   // 4:00 PM
        int MN = 28;  // 4:28 PM
        int S = 41;   // 4:28:41

        Date d = new Date(Y-1900,M,D,H,MN,S);

        System.out.println(d);

        Calendar c = Calendar.getInstance();
        c.set(Y, M, D, H, MN, S);

        d = c.getTime();
        System.out.println(d);                      

    }

}

Выход:

Tue Dec 15 16:28:41 CST 2015
Tue Dec 15 16:28:41 CST 2015

Ответ 6

Поскольку это устаревшее означает, что вы не должны его использовать. Вы можете использовать Календарь для генерации даты из полей.

Ответ 7

deprecated означает, что использование этого конструктора не рекомендуется, и оно может быть удалено в будущих версиях Java. Используйте API календаря.

Ответ 8

Усталость обычно означает, что вам не рекомендуется использовать эту функцию.

По той или иной причине было решено, что Java будет лучше без него (потому что существует более эффективная альтернатива, и вы должны использовать это вместо этого), и поэтому ее можно удалить из будущей версии Java. Отмена - это в основном предупреждение о том, что "это, вероятно, будет удалено в будущем, хотя мы держим его немного дольше, чтобы дать вам возможность сначала удалить его из вашего кода"

Ответ 9

Устаревшие средства основной API и другие java-библиотеки не зависят от него, и он говорит, что у вас есть лучший способ (ы).