gpt4 book ai didi

java - 在 Java - Flex 远程处理应用程序中处理可空整数的最佳实践?

转载 作者:行者123 更新时间:2023-11-30 05:06:27 25 4
gpt4 key购买 nike

我有一个由 Java 服务器部分和 Flash/Flex 客户端组成的应用程序,两者都通过 BlazeDS 进行通信。为了在两个站点上拥有相同类型的对象,我使用 GAS3 代码生成器(由 flex-mojos 使用)。

但是现在我面临着处理可为空整数的问题。问题是我有一个对象 (A),其中包含一个外键 ID,该 ID 引用了一个可选对象 B。 – 但我只将该 ID 发送到 Flex 客户端。

在 Java 站点上这很简单:

class A {
private Integer bFk;
getter/setter
}

但是在flex客户端,bFk是int类型。并且 Flash int 不能为 null。所以remoting机制将Java null Integer转换为0。发送回服务器后,即使在Java端,Java bFk也变为0。 – 这是 Not Acceptable ,因为我需要将 0 和 null 分开。

我的第一个解决方法是在 Java 端不使用 Integer,而是使用一个新的 NullAbleID 类,它的工作方式有点像包装器/适配器,它包装一个内部 int,其中 -1 表示 null(我可以使用 -1 表示 null) ,因为真实 ID 将为负数)。但是当我使用它时,这意味着我必须用这个 NullAbleID 类替换所有 Java Integer id。

因为我相信我不是第一个遇到此问题的人,所以我请求您对一般问题提供更好的解决方案:如何在 Java - Flex 远程处理场景中表示可为 null 的整数?

(我知道问题: flex-null-integer ,但即使是同一个问题,问题也是关于另一个主题的。)

最佳答案

一个想法是使用标志值。类似于 -1 或 NaN。

看看这个错误:https://bugs.adobe.com/jira/browse/BLZ-74 - 正如你所看到的,它被认为是一种语言限制,并且不会通过分配 NaN 来修复(正如一些人建议的那样)。

如果您想自己使用 NaN 方法,请查看 Farata 博客 http://flexblog.faratasystems.com/2010/01/07/how-to-keep-numeric-null-value-from-turning-into-zeros-in-blazeds 。他们说的是AS->Java转换,但是看评论你会发现Java->AS的解决方案

我不会使用包装类修改所有整数,我不喜欢这种方法 - 但这也是一个解决方案。

关于java - 在 Java - Flex 远程处理应用程序中处理可空整数的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4955866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com