Вниз  Java-программирование (1-ые посты)
- 23.04.2016 / 01:12
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Ну Hashtable это самое простое, я бы свою реализацию написал, конечно. В том же After Engine я несколько разных пулов запилил, IntPool в том числе.
- 23.04.2016 / 08:09
aRiGaTo
  Пользователь

aRiGaTo 
Сейчас: Offline
Зачем вообще здесь писать свои хэшмэпы или «эмулировать» их? Как понимаю, проверять длительность нажатия нужно только для пары кнопок. Почему тогда не сделать это вообще отдельными полями?
  1. ...
  2. private int key0Pressed = 0;
  3. private int key1Pressed = 0;
  4. ...
Расширяемость - это, конечно, хорошо, но не для устройств с малым количеством доступных ресурсов.
__________________
 don't tread on me
- 1.05.2016 / 14:28
RooMeN
  Пользователь

RooMeN 
Сейчас: Offline
Снова наткнулся на подобную проблему... Разве так трудно определить, какую именно функцию я хочу вызвать?

  1. private Map<String, Integer> _integer = new HashMap<>();
  2. private Map<String, Float> _float = new HashMap<>();
  3. private Map<String, String> _string = new HashMap<>();
  4.  
  5.  
  6. public int get(String name) {
  7.     return _integer.get(name);
  8. }
  9.  
  10. public float get(String name) {
  11.     return _float.get(name);
  12. }
  13.  
  14. public String get(String name) {
  15.     return _string.get(name);
  16. }

- 1.05.2016 / 14:35
Витаминыч
  Супермодератор

Витаминыч 
Сейчас: Offline
Да назови по человечьи, к чему извращаться и создавать путанницу?
__________________
 わからない!!
- 1.05.2016 / 14:53
aRiGaTo
  Пользователь

aRiGaTo 
Сейчас: Offline
RooMeN, да, трудно. Перегрузка по типу возвращаемого значения (такое вообще где-нибудь реализовано? Динамическая типизация не считается) - это больно. Как ты вообще собираешься в таком случае их вызывать? В зависимости от контекста? String foo = MyMegaMap.get("Bar")? А если будет такой код - float foo = 42 + MyMegaMap.get("Bar")? Как результат ты ожидаешь?
Такое решается другим способом:
1. Бросаешь жаву и берёшься за языки с динамической типизацией (Python, PHP, JavaScript, etc.),
2. Делаешь обёртку для всех возвращаемых значений (либо реализуешь их от одного интерфейса, если это возможно):
  1. public interface Value {
  2.   int asInteger();
  3.   float asFloat();
  4.   String asString();
  5. }
  6.  
  7. public class Int32 implements Value { ... }
  8. public class FP implements Value { ... }
  9. public class Str implements Value { ... }
  10. public class SomeStruct implements Value { ... }
  11.  
  12. ...
  13.  
  14. private final Map<String, Value> map = new HashMap<>();
  15. public Value get(final String name) {
  16.   return map.get(name);
  17. }
3. Как-то пытаешься реализовать через generic'и.
__________________
 don't tread on me

Изменено aRiGaTo (1.05 / 14:56) (всего 1 раз)
- 1.05.2016 / 17:57
DominaN
  Пользователь

DominaN 
Сейчас: Offline
я думаю, проще реально назвать функции нормально
- 1.05.2016 / 18:01
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Или писать сразу в байткоде. JVM позволяет создавать методы с одинаковым именем, аргументами, но отличающиеся по возвращаемому типу.
__________________
 let live
- 3.05.2016 / 20:14
Naik
  Пользователь

Naik 
Сейчас: Offline
Есть ли реализация сервера Socket.io с поддержкой механизмов работы Spring (контролёры, конвертация из/в json, spring sequrity)? Есть SockJS, но мне так и не удалось заставить работать hello world, просто запросы не доходят https://spring.io/guides/gs/messaging-stomp-websocket/

Нашёл только такую реализацию https://github.com/mrniko/netty-socketio
- 3.05.2016 / 20:56
Naik
  Пользователь

Naik 
Сейчас: Offline
Или может есть альтернативы для реалтайм действий работающие в браузере, Android, ios
- 5.05.2016 / 20:08
Naik
  Пользователь

Naik 
Сейчас: Offline
Проблема решена, оказывается в том примере нужны не просто веб сокеты, а протокол STOMP поверх них. Кстати SockJS на бекенде понимает и самые обычные веб сокеты, достаточно добавить к пути /websocket.

  Нашёл 2 либы, которые удалось запустить на Android для сокетов, сам stomp пришлось вручную писать, что в принципе не сложно, протокол текстовый. Интересно, что на java есть его реализация поверх сокетов лишь на бекенд (spring), на клиент ничего не нашёл. Как допилю может выложу как либу если кому нужно.

Изменено Naik (5.05 / 20:11) (всего 2 раза)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)