Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите HashMap с двумя типами объектов

ql_Nik_lp

Старожил
Девелопер
Пользователь
Баллы
173
Имя в Minecraft
ql_Nik_lp
Доброго, рубаккит!
Вопрос такой: надо сделать HashMap у которого ключ будет String'ом, а вот сам объект сможет быть нескольких типов.
Знаю что можно сделать HashMap<String, Object>, но это все же как то не комильфо.

Гугл результатов не дал, хотя возможно криво гуглил. Жду ответа.
Заранее благодарю.
 
Доброго, рубаккит!
Вопрос такой: надо сделать HashMap у которого ключ будет String'ом, а вот сам объект сможет быть нескольких типов.
Знаю что можно сделать HashMap<String, Object>, но это все же как то не комильфо.
А зря смущаетесь. В Java других вариантов и нету.
В .Net есть универсальный тип <T>
Ближайший аналог в Java <?>. Класс типа "?" выглядит так: Class<?> и это класс неопределенного типа, который нельзя использовать в коллекциях.

А с учетом того, что все классы в Java наследуются от Object - HashMap<String, Object> вполне справедлив.
 
А зря смущаетесь. В Java других вариантов и нету.
В .Net есть универсальный тип <T>
Ближайший аналог в Java <?>. Класс типа "?" выглядит так: Class<?> и это класс неопределенного типа, который нельзя использовать в коллекциях.

А с учетом того, что все классы в Java наследуются от Object - HashMap<String, Object> вполне справедлив.
NetBeans предлагает использовать diamond... именно с <T>. Уже кусок кода я не помню, какой он там был, но это помню точно.
 
NetBeans предлагает использовать diamond... именно с <T>. Уже кусок кода я не помню, какой он там был, но это помню точно.
Тоже видел что-то связанное с <T>
Сейчас прогуглю
Тоже видел что-то связанное с <T>
Сейчас прогуглю
Нет, это не для этого.
http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html
 
В общем проблему свою решил просто - перевел все инты в далб, хоть и не добавит производительности, зато более правильно и безопасно.

:\ Для Raw оказывается он. Будем знать :)
А у тебя кстати как с программингом?)
 
В чем проблема создать универсальный класс\интерфейс - и от него отнаследоваться\реализовать и в хешмап ключем указать этот самый универсальный класс\интерфейс.

Можно хоть все хранить в Object - делай только приведение и запихивай в хешмап, захочешь получить объект из мапы - проверяй на тип и делай обратное приведение.
 
HashMap<String,Object> конечно зарешает, но я предпочитаю пилить свой класс который может хранить нужные данные вместо Object.
 

Поделиться этой страницей

Назад
Верх