Size: a a a

2020 May 29

L

Leo in learn.java
...
допустим у тебя метод который должен принимать разного рода списки
Этот момент я понял, меня просто интересует сам момент объявления. Ведь по сути ArrayList и так наследник List, само объявление разве что-то меняет?
источник

GV

Gukov Viktor in learn.java
Gukov Viktor
Или возвращать
Апи более гибкое получается
источник

.

... in learn.java
Gukov Viktor
Апи более гибкое получается
с языка снял , никак не мог сформулировать))
источник

NS

Name Schiefer in learn.java
Leo
Этот момент я понял, меня просто интересует сам момент объявления. Ведь по сути ArrayList и так наследник List, само объявление разве что-то меняет?
Ты не сможешь методы arrayList использовать
источник

GV

Gukov Viktor in learn.java
Leo
Этот момент я понял, меня просто интересует сам момент объявления. Ведь по сути ArrayList и так наследник List, само объявление разве что-то меняет?
В данном конкретном случае ничего. В случае отдельного метода, используя интерфейс ты даёшь клиенту право выбора реализации, а не жёстко ее зашиваешь
источник

NS

Name Schiefer in learn.java
Только если закастить обратно к аррейлист
источник

L

Leo in learn.java
Gukov Viktor
В данном конкретном случае ничего. В случае отдельного метода, используя интерфейс ты даёшь клиенту право выбора реализации, а не жёстко ее зашиваешь
То есть, лучше стремиться к более гибкому функционалу и объявлять как List?
источник

.

... in learn.java
в целом через интерфейсы , но стоит учитывать ситуацию. Не всегда это хорошая идея реализовывать объекты через интерфейс
источник

.

... in learn.java
я так 2 дня над рабочим кодом сидел и гадал в чем проблема
источник

GV

Gukov Viktor in learn.java
Leo
То есть, лучше стремиться к более гибкому функционалу и объявлять как List?
Максимально гибкому, да. Возможно даже не list, а iterable :)
источник

.

... in learn.java
а проблема была в тестах)
источник

GV

Gukov Viktor in learn.java
Gukov Viktor
Максимально гибкому, да. Возможно даже не list, а iterable :)
Реши, какие методы от параметра тебе нужны и выбери максимально общий класс в котором они есть
источник

L

Leo in learn.java
Gukov Viktor
Максимально гибкому, да. Возможно даже не list, а iterable :)
Всем спасибо!)
источник

l

lem0nify in learn.java
Короч, мужики, дело такое.
Пишу игрового бота для Discord на JDA. Хочу всё структурировать, классифицировать по красоте, читаемости и расширяемости с учётом принятых в джаве стандартов оформления кода (в которых ничего не понимаю, лол, поэтому и пишу сюда).
У меня есть главный класс Bot, в котором объявлено поле private Commands activeCommands, оно передаётся объекту BotListenerAdapter extends net.dv8tion.jda.api.hooks.ListenerAdapter, который передаётся JDABuilder'у при создании объекта JDA. Commands — это просто обёрточка над HashSet<Command> с дополнительным функционалом для быстрого поиска нужной команды и всяким таким. Command — это абстрактный класс, от которого наследуются разные команды и реализуют соответствующую логику.
По задумке BotListenerAdapter обрабатывает получение сообщения в канале через @Override onMessageReceived, проверяет наличие команды в activeCommands и вызывает у неё метод action (тот самый абстрактный метод с логикой), передавая параметры команды, после чего метод action отрабатывает и возвращает некий результат, который там же в обработчике onMessageReceived бот должен отправить ответом в канал дискорда Ну, чтобы не передавать в объект команды всякую муть, вроде объектов канала, отправителя и т.д. Команда отработала автономно, а ответом занимается уже BotListenedAdapter, получив её результат.
Проблема вот в чём: результат исполнения команды может быть разный. Это может быть как plain-text-ответ или DiscordEmbed или какая-нибудь гифка, так и более сложная конструкция, напичканная всякими фьючерами (или потоками, хз), представляющая из себя Embed с функциональными кнопками, реализованными через reactions дискорда. Естественно, разные виды результатов и обрабатывать нужно по-разному. Как быть в таком случае? Каким образом лучше всего будет классифицировать результат исполнения Command.action и как отличить один вид результата от другого?
источник

l

lem0nify in learn.java
Была идея написать enum CommandResult с несколькими константами, определяющими разные виды результатов и эксклюзивными данными и методами для разных констант, но... как-то слегка отдаёт это костылём. Предусмотрены ли в джаве более подходящие и уместные способы реализации данной штуки?
источник

c

ciplenok57 in learn.java
Кто может подсказать, где можно попрактиковаться в многопоточности?
источник

c

ciplenok57 in learn.java
Может задачник какой-то есть)
источник

.

... in learn.java
Присоединяюсь к вопросу
источник

М

Мaclaу💕 in learn.java
ciplenok57
Кто может подсказать, где можно попрактиковаться в многопоточности?
блинов
источник

М

Мaclaу💕 in learn.java
Книга
источник