[Seasar-user:8838] Re: [S2Flex2]ActionScript3->Javaの変換について
jun funakura
[E-MAIL ADDRESS DELETED]
2007年 7月 1日 (日) 12:14:50 JST
石井さん
ふなくら(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 メーリングリストの案内