|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||||||
Пустые методы в перечислении java.util.concurrent.TimeUnit15.01.2017, 12:30. Показов 1527. Ответов 24
Метки нет (Все метки)
Решил, ради интереса, посмотреть, как реализованы методы convert(), toNanos(), toSeconds() и прочие в перечислении TimeUnit, но, к своему удивлению, обнаружил у всех подобных методов следующее:
0
|
||||||
| 15.01.2017, 12:30 | |
|
Ответы с готовыми решениями:
24
Java.util.concurrent.* или java.util.Stream Разработать многопоточное приложение. Использовать возможности, предоставляемые пакетом java.util.concurrent Методы интерфейса java.util.List |
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||
| 15.01.2017, 13:05 | ||||
1
|
||||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|||||||
| 15.01.2017, 15:17 [ТС] | |||||||
|
KEKCoGEN, спасибо большое за Ваш ответ, я, кажется, понял: компилятор java требует, чтобы в перечислениях все методы были с конкретными реализациями(
Но Почему тогда я ниже в классе заметил метод:
0
|
|||||||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 15.01.2017, 20:42 [ТС] | |
|
turbanoff, метод toDays(), например, тоже реализуется каждым членом enum-а. Почему тогда он не объявлен абстрактным?
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 16.01.2017, 10:23 | ||
|
1
|
||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 16.01.2017, 16:14 [ТС] | |
|
KEKCoGEN, turbanoff, не понял.. Объясните пожалуйста заново.
Сначала я подумал, что так как компилятор java требует, чтобы в перечислениях все методы были с конкретными реализациями, но так как хочется обозначить единое поведение для нескольких констант, то объявляют неабстрактный метод, который играет роль абстрактного, а потом уже в каждой конкретной константе перечисления этот метод переопределяется. Но потом я ниже в классе заметил метод, который объявлен абстрактным. turbanoff сказал, что это допустимо, так как каждый член перечисления реализует данный метод. Но ведь все остальные методы тоже реализуются всеми членами. KEKCoGEN, Ваш последний ответ не понял вообще. Вы говорите, "что абстрактные методы туда не попадали, стандартный доклет(что такое доклет?) не выписывает в доки абстрактные методы". Так ведь полно доков с абстрактными методами? "Это пофиксили таким вот немного костыльным образом." Что пофиксили? Я запутался.. помогите
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 16.01.2017, 16:54 | |
|
danek130995, мне честно лень писать подробное описание. Есть баг. Есть гугл. Если вам очень интерестно, поищите сами однако я бы на вашем месте забил. Не такой уж интерестный кейс особенно с вашем уровнем знаний. У вас должно хватать тем для изучения и без этого.
0
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||
| 16.01.2017, 19:37 [ТС] | ||
|
0
|
||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
||||||
| 16.01.2017, 19:49 [ТС] | ||||||
|
turbanoff, ясно
![]() Но все же остается непонятным, почему нельзя было все эти методы объявить абстрактными по нормальному? Ведь каждый из них реализуется в каждом члене Enum'а. Сейчас попробовал создать такой Enum:
Понятно было бы, если бы какой-то из членов TimeUnit не реализовывал бы какой-то метод. Но ведь все реализуются, зачем этот workaround нужен был?
0
|
||||||
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 16.01.2017, 20:11 [ТС] | |
|
turbanoff, а почему в javadoc'е нельзя помечать методы абстрактными?
И что имелось в виду To maintain full signature compatibility with 1.5? В java 1.5 что то было запрещено?
0
|
|
|
|
|
| 16.01.2017, 20:16 | |
|
danek130995, Потому что enum всё равно обязатывает иметь имплементацию всех методов.
Это бы смущало пользователей, которые читают javadoc. То как именно реализован метод (один на весь enum или в каждом поле свой) - это детали реализации, они не должны быть видны в спеке языка. Добавлено через 1 минуту Не по теме: PS. Вот же вам нечем заняться чем обсуждать такие неважные детали на форуме :D
1
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 16.01.2017, 21:41 [ТС] | |
|
turbanoff, на самом деле я очень занятой, и вопросы на Форуме задаю такие, потому что хочу отлично знать java и у меня пытливым ум. Вы говорите, что это смущало бы пользователей) "неплохо" они позаботились о пользователях! Получилось как раз наоборот, потому что люди с пытливым умом смутятся ещё больше - Я вот смутился же)
А что все таки на счёт 1.5? Какая несовместимость имелась в виду?
0
|
|
| 16.01.2017, 21:44 | |
|
Не по теме: гуглом научись пользоваться, ядрен батон
0
|
|
|
33 / 33 / 3
Регистрация: 25.05.2014
Сообщений: 1,137
|
|
| 16.01.2017, 22:09 [ТС] | |
|
xoraxax, я умею, спасибо) я хочу просто у профессионалов спросить и я точно не знаю какой запрос даже вбить в данной ситуации
0
|
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|||
| 16.01.2017, 23:42 | |||
|
Добавлено через 2 минуты
1
|
|||
| 16.01.2017, 23:42 | |
|
Помогаю со студенческими работами здесь
20
Аналоги java.util.ArrayList<java.util.ArrayList<Integer>> java.util.NoSuchElementException
Пакет Java.util Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|