AMF(BlazeDS)によってJavaからFlexにデータを取得します
Java側では、オブジェクトには整数フィールドがあります。したがって、nullになる可能性があります。
Flex側では、オブジェクトはintです。したがって、null値は0として逆シリアル化されます。
これは私が望むものではありません。0かnullかを確認したいと思います。
Flex用の(Javaの整数)のようなラッパーはありますか?ありがとう
AMF(BlazeDS)によってJavaからFlexにデータを取得します
Java側では、オブジェクトには整数フィールドがあります。したがって、nullになる可能性があります。
Flex側では、オブジェクトはintです。したがって、null値は0として逆シリアル化されます。
これは私が望むものではありません。0かnullかを確認したいと思います。
Flex用の(Javaの整数)のようなラッパーはありますか?ありがとう
私の知る限り、そのようなラッパーはありません。コンストラクターへの引数がである場合、NaN
内部に割り当てるものを書くことができますint
null
setValueとgetValueをオーバーライドするBeanProxyクラスを作成することでこれを解決しました。そこでは、値がNumberでnullの場合はNaNをフレックス側に返し、DoubleでNaNの場合はJava側にnullを返します。完了した仕事:
@オーバーライド public void setValue(Object instance、String propertyName、Object value){ if((value instanceof Double)){ Double doubleValue =(Double)値; if(doubleValue!= null && doubleValue.isNaN()){ super.setValue(instance、propertyName、null); } }そうしないと{ super.setValue(instance、propertyName、value); } } @オーバーライド public Object getValue(Object obj、String propertyName){ 最終クラスclassType=super.getType(obj、propertyName); if(isNumber(classType)&& super.getValue(obj、propertyName)== null){ Double.NaNを返します。 } super.getValue(obj、propertyName);を返します。 }
Amarghoshには正解がありますが、プロジェクトを続行すると、「すべてが文字列である」というルールを適用すると、amfの世界での生活が非常に楽になることがわかります。長期的には大いに役立つかもしれない単なる提案。
幸運を祈ります、ジェレミー
Amarghoshが答えたように、そのようなラッパーはありません。回避策として、ドメイン内の割り当てられていないint値と等しい-1のint値を確認します。