Наталья *****
Наталья *****

Java Общий объект для всех классов

http://otvet.mail.ru/question/90366756

У меня проблема в следующем. 1 суперкласс и 4 подкласса (в них методы разные по своим задачам, у одного есть, у других такой задачи нет)
Все объекты подклассов хранятся в ХешМепе.
Я сделал функцию, которая по ключу находит нужный объект и возвращает его при помощи return
Но вот проблема. Так как у меня 4 разных подкласса, а вернуть он может любой, то как в этом случае быть?
Я задумывал чтобы при вызове findByKey("12345") у меня возвращался объект, который будет уже в нужном мне типе и ничего делать с ним не надо будет, кроме простого вызова его методов. Но тут и ступор, весь день с этим маюсь, подскажите, уже мозги кипят
Я не знаю, в каком именно типе мне вернется значение, а писать кучу лишнего кода чтобы проверять и выполнять каждый вызов нового метода это тоже не дело.. .
Есть какой нибудь простой вариант?

Просто привести тип тут не получится...

Дамира
Дамира

>> Я задумывал чтобы при вызове findByKey("12345") у меня возвращался объект, который будет уже в нужном мне типе и ничего делать с ним не надо будет

Если так, то у тебя задумано и приведение типа данных? Ведь объекты разных типов могут храниться только как тип базового класса.

Для C# решить можно так.

public T FindByKey(string key)

если объект найден, преобразуем его к требуемому типу данных. И возвращаем null если объекта либо нет, либо он другого типа и не может быть преобразован.

Другая идея.
Для каждого ключа разрешить хранить объекты разных типов. И имея ключ "123" при получении искать в списке тех объектов тип данных которого совпадает с запрошенным "Т"

Третья идея. Возьми готовый класс чьей-нить разработки. 2-3 варианта. И выбери какой больше понравится. За одно и посмотришь как это делали другие

Сергей Гончаров
Сергей Гончаров

использование " this. " не помогает?

Похожие вопросы
java. вызвать метод класса из анонимного класса. как?
Как сравнить два объекта одного класса в С++ ?
Java - проектирование класса по обработки контура
instance variables (объект класса) c++
Декомпиляция java классов по отдельности $$$ в названии классов.
Что такое класс в языке java. Только простым языком если можно
C#Как серилизовать класс в котором объекты другого класса?
Java, быстрая сортировка массива объектов.
Как правильно клонировать объекты в Java?
Java. В чем отличие Класс. вызов_метода () и объект. вызов_метода ()?