[Seasar-user:8891] Re:[S2Flex2]ActionScript3->Javaの変換について

石井 博之 [E-MAIL ADDRESS DELETED]
2007年 7月 2日 (月) 20:56:57 JST


石井です。

回答ありがとうございます。

> 上記を
> int sum(Integer[] data);
> にすることは可能です。
> AS側でデータを渡す際に、var data:Array = [1,2,3,4,5]としているので
> Integerの配列にバインディングされます。
開発の上で、サイズをLong型にしたいという要望があり、
いろいろと試してみたところ、Java側をNumber型でやるとうまくいきました。

as3->javaで配列型渡しの場合は難しいですね。

また何かありましたらよろしくお願いします。

石井



----- Original Message ----- 
From: "jun funakura" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Sent: Sunday, July 01, 2007 12:14 PM
Subject: [Seasar-user:8838] Re:[S2Flex2]ActionScript3->Javaの変換について


> 石井さん
>
> ふなくら(nod)です。
> 回答がおそくなってしまいました。
>
>> RemoteObject(Java)側
>>     int sum(long[] data);
>
> 上記を
> int sum(Integer[] data);
> にすることは可能です。
> AS側でデータを渡す際に、var data:Array = [1,2,3,4,5]としているので
> Integerの配列にバインディングされます。
>
>> RemoteObject側のlong[]の部分をObject[]に変えるとうまくいきました。
>> 他の型の配列だと、うまくいかないのでしょうか?
>
> asで作成されたObjectを渡す際には、メタタグであるremoteClass
> を指定することで、対応するjavaクラスの配列になります。
>
> [RemoteClass(alias="examples.flex2.add.dto.AddDto")]
>
> 上記の例では、AddDto.javaにマッピングされるといった感じです。
>
> as:
> var data:Array = new Array();
> data[0] = new AddDto();
> data[1]= new AddDto();
>
>
> java
> int sum(AddDto[] data);
>
> というようになります。
>
> as3->javaの変換ルールは以下のルールになっています。
> http://s2flex2.sandbox.seasar.org/ja/as3Tojavamapping.html
>
> --
> ふなくら(nod)
>
>
>
> 07/06/28 に 石井 博之<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> お世話になります。石井です。
>>
>> S2Flex2について質問があります。
>> バージョンはS2Flex2 1.0.1を使用しています。
>>
>> ActionScriptからRemoteObjectのメソッドを呼び出すとき、
>> 引数で配列を渡そうと思っているのですが、
>> 下記のような場合、うまくいきません。
>>
>>
>> ActionScript側 (s2flex2-tutorialのAbstractPage.asのremoteCallを使用)
>>     var data:Array = [1,2,3,4,5];
>>     remoteCall(service.sum(data), success, fault);
>>
>> RemoteObject(Java)側
>>     int sum(long[] data);
>>
>> この場合、下記のようなエラーが表示されます。
>>
>> java.lang.ArrayStoreException
>>  at java.lang.System.arraycopy(Native Method)
>>  at
>> org.seasar.flex2.util.converter.impl.AbstractArrayConverterImpl.convertToTypedArray(AbstractArrayConverterImpl.java:57)
>>  at
>> org.seasar.flex2.util.converter.impl.AbstractArrayConverterImpl.convertToArray(AbstractArrayConverterImpl.java:35)
>>
>> RemoteObject側のlong[]の部分をObject[]に変えるとうまくいきました。
>> 他の型の配列だと、うまくいかないのでしょうか?
>>
>> よろしくお願いします。
>>
>> 石井
>>
>>
>>
>>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>




Seasar-user メーリングリストの案内