在CORBA中表示null java.lang.Double?

时间:2011-05-23 14:56:29

标签: java null corba

假设我有一个null java.lang.Double(object)来传递CORBA。 CORBA不接受双原语类型的null,所以我必须将它映射到另一个双(原始)值。

我应该使用的最佳价值是什么?

谢谢!

2 个答案:

答案 0 :(得分:2)

这是一个很难回答的问题,特别是如果所有双重值对此变量所代表的任何内容都有效。

最好的选择是选择Double.MIN_VALUE或一些很可能不会被使用的值。

但是,您需要确保此值也可以在将与CORBA连接的其他语言/硬件中表示。

答案 1 :(得分:1)

CORBA值类型支持null;请参阅CORBA 3.1规范第1部分的第9章 - http://www.omg.org/spec/CORBA/3.1/Interfaces/PDF/

我认为以下IDL语法将定义一个可以代表doublenull的盒装值类型。

valuetype Double double;

如果您无法更改IDL并且当前IDL不允许您发送null值,那么您应该将null视为错误而不是尝试发送它。从Double.MAX_VALUE值集中窃取合法值(例如double)代表null,这就是问题:

  • 有些时候可能需要发送Double.MAX_VALUE作为数据。
  • 使用此界面的其他现有软件可能不了解您的约定,并且可能会将Double.MAX_VALUE作为其文字自我处理。