Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
11 / 10 / 4
Регистрация: 08.03.2016
Сообщений: 333

Что возвращать

12.01.2018, 00:14. Показов 1085. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть класс Item, допустим у него куча наследников.
Есть ArrayList, который хранит в себе наследников Item.
Нужно наугад вытащить любой Item.
Решил сделать так:
Java
1
2
3
4
public Object pullOut() {
    Object object;
    return object = (itemList.size() > 0) ? itemList.get(new Random().nextInt(itemList.size())) : "Нечего доставать";
}
Чтобы в будущем работать, как с Item, нужно
Java
1
2
3
4
5
6
if (pullOut() instanceof Item) {
    Item item = (Item)pullOut();
}
else {
    String str = (String)pullOut();
}
Но мне это особо не нравится (из-за метода)
Предложите свои варианты, делаю упор на метод, но как изменить по-другому не знаю.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.01.2018, 00:14
Ответы с готовыми решениями:

В задании требуется описать что данный метод будет возвращать и в каком случае
В задании требуется описать что данный метод будет возвращать и в каком случае. не могу никак разобраться. спасибо за помощь. ...

Как вернуть полученную строку? На консоль выводит, а в Main возвращать не хочет
что то пошло не так Добавлено через 5 минут Классическая задача на замену местами первого и последнего слова в строке, но что...

Как заставить Java возвращать память системе?
Как заставить Java возвращать память системе. System.gc() проблемы не решает

6
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.01.2018, 00:17
если в листе Itemы, зачем возвращать Object?
Цитата Сообщение от damirqa Посмотреть сообщение
Object object;
* * return object =
а вот это вообще странная конструкция
0
11 / 10 / 4
Регистрация: 08.03.2016
Сообщений: 333
12.01.2018, 16:35  [ТС]
xoraxax, почему?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.01.2018, 17:30
что почему? если в листе Itemы то наверно логично возвращать Itemы, а не Object
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
12.01.2018, 20:19
damirqa,
Java
1
2
3
public Item pullOut() {
    return itemList.size() > 0 ? itemList.get(new Random().nextInt(itemList.size())) : null;
}
Цитата Сообщение от damirqa Посмотреть сообщение
Чтобы в будущем работать, как с Item,
да просто
Java
1
2
3
4
5
Item item =pullOut();
if (item==null) {
//делаешь что то из-за нулл
}
//делаешь что то с итемом
а тебе именно случайный элемент из списка нужен?
0
11 / 10 / 4
Регистрация: 08.03.2016
Сообщений: 333
13.01.2018, 00:43  [ТС]
xoraxax, Welemir1, понял почему странная конструкция. Вместо null должна была быть строка (я забыл указать это в коде), которая говорит, что список пустой. Поэтому приходится обрабатывать возвращаемый объект. Может быть есть какая-нибудь конструкция, которая завершает метод заранее (не доходит до конца метода) и выводит ошибку?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.01.2018, 01:23
Лучший ответ Сообщение было отмечено damirqa как решение

Решение

если лист пустой должно исключение быть или что?
Java
1
2
3
4
5
6
public static <T> T pullRandom(List<T> list) {
        if (list.isEmpty()) {
            throw new IllegalArgumentException("The list is empty");
        }
        return list.get(ThreadLocalRandom.current().nextInt(list.size()));
    }
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2018, 01:23
Помогаю со студенческими работами здесь

Можно ли создать метод, который бы мог возвращать объекты разных классов
Такой вопрос. Можно ли создать метод, который бы мог возвращать объекты разных классов, по выбору пользователя? Если да, напишите...

Конвертер величин: Что нужно делать в методе ConvertBack что бы возвращать и редактировать значение
Форумчане помогите разобраться все перерыл не могу догнать(( Что нужно делать в методе ConvertBack что бы возвращать и редактировать...

Что должна возвращать WndProc?
Доброго вечера, в общем, хочу сделать действие, при нажатии кнопки. LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam,...

Что значит возвращать значение
Функция возвращает значение; функция удаляет, но не возвращает значения; Функция не возвращает значения. Что значит...

Что возвращать из оператора присваивания?
//------------------------------------------------------------------------------------------------------------------------------------------...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru