Java可消耗服务的.NET可空值类型的最佳替代方案

Ric*_*ett 5 .net java wcf nullable

我们正在创建一些最初由.NET客户端使用的WCF服务,但将来将被Java客户端使用.

因此,我们希望避免在Java不支持的接口中使用任何数据类型.

我们所知道的具体是可以为空的值类型.

一个建议是我们可以通过使用字符串来表示,例如,可以为空的int来支持这些.因此空字符串表示null,否则要求字符串必须可解析为int.

任何人都可以推荐一个更好的选择,或者你会这样做?

Jon*_*eet 5

希望,如果你可以公开通过WCF一个空整数,即任何消费,从Java将使用包装类型- Integer代替int,Byte而不是byte等,当然这些都是引用类型,而在.NET空值类型还是值因为你不会支持用户定义的值类型,所以你会得到更多的GC压力并且通常效率会降低,但是你可以做很多事情.


Fre*_*örk 3

我几年前参与的一个项目(也是 .NET / Java 组合)中使用的一种方法是添加指标属性:NumPropertyNumPropertyIsNull。它不是特别漂亮,但很有效。

作为一个侧面节点,我认为最终我们无法找到一个业务案例,其中 和 之间的差异0实际上null很重要。

  • @TcKs:我很清楚 0 和 NULL 是不一样的;我只是说,在那个特定项目中,我们意识到没有“实际”差异。当然,这会因项目而异,但非常值得考虑。如果差异对于应用程序来说并不重要;那么您也许不应该花时间为其设计解决方案。在另一个项目中,差异可能很大。 (3认同)
  • @TcKs:这正是我的观点...首先弄清楚在应用程序中区分 NULL 和 0 是否有意义。如果没有,请不要花时间解决它。 (2认同)