Представляя нулевой java.lang. Double в CORBA? - PullRequest
0 голосов
/ 23 мая 2011

Допустим, у меня есть нулевой java.lang.Double (объект) для прохождения через CORBA. CORBA не принимает значение null для типа с двойным примитивом, поэтому мне придется сопоставить его с другим двойным (примитивным) значением.

Какое лучшее значение я должен использовать?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 мая 2011

Это сложный вопрос, особенно если все двойные значения действительны для того, что будет представлять эта переменная.

Лучше всего выбрать Double.MIN_VALUE или какое-то значение, которое, скорее всего, не будет

Однако необходимо убедиться, что это значение будет также отображаться на других языках / оборудовании, которые будут взаимодействовать с CORBA.

1 голос
/ 23 мая 2011

Типы значений CORBA поддерживают ноль;см. главу 9 спецификации CORBA 3.1 часть 1 - http://www.omg.org/spec/CORBA/3.1/Interfaces/PDF/

Я думаю, что следующий синтаксис IDL определит тип значения в штучной упаковке, который может представлять double или null.

valuetype Double double;

Если вы не можете изменить IDL, а текущий IDL не позволяет вам отправлять null значения, тогда вы должны рассматривать нулевое значение как ошибку и не пытаться отправить его.Кража допустимого значения (скажем, Double.MAX_VALUE) из набора значений double для обозначения null вызывает проблемы:

  • Когда-нибудь может возникнуть необходимость отправить Double.MAX_VALUE как данные.
  • Другое существующее программное обеспечение, использующее этот интерфейс, скорее всего, не будет знать о вашем соглашении и может обработать Double.MAX_VALUE как его буквальное "я".
...