У меня есть приложение, состоящее из части сервера Java и клиента Flash / Flex, оба взаимодействуют через BlazeDS. Чтобы иметь одинаковые типизированные объекты на обоих сайтах, я использую генератор кода GAS3 (используемый flex-mojos).
Но теперь я столкнулся с проблемой обработки целых чисел, допускающих значение NULL. Проблема в том, что у меня есть объект (A), который содержит идентификатор внешнего ключа, который ссылается на необязательный объект B. - Но я отправляю идентификатор только гибкому клиенту.
На сайте Java легко:
class A {
private Integer bFk;
getter/setter
}
Но на стороне гибкого клиента bFk имеет тип int. И Flash int не может быть нулевым. Таким образом, механизм удаленного взаимодействия преобразует Java null Integer в 0. После отправки его обратно на сервер Java bFk становится 0 даже на стороне Java. - Это неприемлемо, потому что мне нужно разделить 0 и ноль.
Мой первый рабочий процесс использует не Integer на стороне Java, а новый класс NullAbleID, который работает немного как оболочка / адаптер, который обертывает внутренний int, где -1 представляет собой null (я могу использовать -1 для null, потому что реальный id будет отрицательным). Но когда я использую это, это означает, что мне нужно заменить все идентификаторы Java Integer этим классом NullAbleID.
Поскольку я считаю, что я не первый, у кого есть эта проблема, я прошу вас лучше решить общий вопрос: как представить целое число, допускающее значение NULL, в сценарии удаленного взаимодействия Java - Flex?
(Мне известен вопрос: flex-null-integer, но даже если это та же проблема, вопрос о другом предмете.)