1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем ql_Nik_lp, 7 дек 2013.

  1. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

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

    Гугл результатов не дал, хотя возможно криво гуглил. Жду ответа.
    Заранее благодарю.
     
  2. Holod

    Holod Активный участник Пользователь

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

    А с учетом того, что все классы в Java наследуются от Object - HashMap<String, Object> вполне справедлив.
     
    I-Am-Black-Overlord и ql_Nik_lp нравится это.
  3. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    NetBeans предлагает использовать diamond... именно с <T>. Уже кусок кода я не помню, какой он там был, но это помню точно.
     
  4. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Тоже видел что-то связанное с <T>
    Сейчас прогуглю
    Нет, это не для этого.
    http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html
     
    Dereku нравится это.
  5. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Сникерсни нравится это.
  6. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    В общем проблему свою решил просто - перевел все инты в далб, хоть и не добавит производительности, зато более правильно и безопасно.

    А у тебя кстати как с программингом?)
     
  7. Dereku

    Dereku Старожил Пользователь

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Всё грустно, но пытаюсь прикрутить внутриклиентскую авторизацию с:
     
  8. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    А зачем спрашивается?
     
  9. ptnk

    ptnk Старожил Пользователь

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

    Можно хоть все хранить в Object - делай только приведение и запихивай в хешмап, захочешь получить объект из мапы - проверяй на тип и делай обратное приведение.
     
    ql_Nik_lp нравится это.
  10. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    HashMap<String,Object> конечно зарешает, но я предпочитаю пилить свой класс который может хранить нужные данные вместо Object.
     
    The Midnight Wizard и ql_Nik_lp нравится это.
  11. Автор темы
    ql_Nik_lp

    ql_Nik_lp Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Спасибо за идею. Подумаю на эту тему.
     

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