Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Разработка плагинов для новичков' started by ql_Nik_lp, Dec 7, 2013.

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

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

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

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

    Holod Модератор

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

    А с учетом того, что все классы в Java наследуются от Object - HashMap<String, Object> вполне справедлив.
     
  4. Dereku

    Dereku Старожил

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

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

    Trophy Points:
    173
    Skype:
    q-nik-p
    Имя в Minecraft:
    ql_Nik_lp
    Тоже видел что-то связанное с <T>
    Сейчас прогуглю[DOUBLEPOST=1386380262,1386380180][/DOUBLEPOST]
    Нет, это не для этого.
    http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html
     
    Dereku likes this.
  6. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Сникерсни likes this.
  7. Автор темы
    ql_Nik_lp

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

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

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

    Dereku Старожил

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

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

    Trophy Points:
    173
    Имя в Minecraft:
    _Shevchik_
    А зачем спрашивается?
     
  10. ptnk

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

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

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

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

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

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

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

Share This Page