Flex: convertendo Actionscript para java

Quando enviamos parâmetros de uma aplicação em Flex para uma aplicação Java,  os dados são convertidos automaticamente de um tipo de dados ActionScript para um tipo de dados Java.

Os tipos de dados mais simples, como Boolean e String, são convertidos exatamente para os mesmos objetos em Java, pois eles existem nas duas APIs. No entanto, o Flex sempre tenta fazer a associação mais simples entre a sua API e a API do Java.

Um Array ActionScript pode ser convetido de várias formas no Java.

A tabela a seguir mostra os tipos de conversão nativos suportados de ActionScript (AMF3) para Java:

ActionScript (AMF 3)

Java

Binding Java suportado

Array (dense)

java.util.List

java.util.Collection, Object[ ] (native array)

Se o tipo for uma interface:

  • List -> ArrayList
  • SortedSet -> TreeSet
  • Set -> HashSet
  • Collection -> ArrayList

Array (sparse)

java.util.Map

java.util.Collection, native array

Boolean

java.lang.Boolean

Boolean, boolean, String

flash.utils.ByteArray

byte []

 

flash.utils.IExternalizable

java.io.Externalizable

 

Date

java.util.Date

(formatted for Coordinated Universal Time (UTC))

java.util.Date, java.util.Calendar, java.sql.Timestamp, java.sql.Time, java.sql.Date

int/uint

java.lang.Integer

java.lang.Byte, java.lang.Double, java.lang.Float, java.lang.Long, java.lang.Short, java.math.BigDecimal, String, tipos primitivos byte, double, float, long, e short

null

null

primitives

number

java.lang.Double

java.lang.Byte, java.lang.Double, java.lang.Float, java.lang.Long, java.lang.Short, java.math.BigDecimal, String, 0 (zero) se null for enviado, tipos primitivos byte, double, float, long, e short

Object (generic)

java.util.Map

Se for a interface Map, o Data Services do Flex cria um novo java.util.HashMap para java.util.Map e um novo java.util.TreeMap para java.util.SortedMap.

String

java.lang.String

java.lang.String, java.lang.Boolean, java.lang.Number

typed Object

quando você usa a metadata(anotação) [RemoteClass] que especifica a classe remota. A entidade remota deve ter obrigatoriamente um construtor sem argumentos.

typed Object

undefined

null

null para Object, valores default para primitivos

XML

org.w3c.dom.Document

org.w3c.dom.Document

XMLDocument

(legacy XML type)

org.w3c.dom.Document

org.w3c.dom.Document

Primitivos não podem ser nulos em Java. Quando passar um Number ou Boolean do cliente Flex para o servidor Java, o Flex irá interpretar como valor default para os primitivos:
0 para double, float, long, int, short, byte;
u0000 para char;
false para boolean.

Referência: Adobe Livedocs

Deixe um Comentário

3 Comentários.

  1. Opa!

    Muito bom o post!

    Muito útil principalmente pra quem ta começando com Flex (como eu) e precisa de uma luz!

    Valew, Abraço!

  2. Aee!! Até que enfim…procurei essa tabela por toda parte! Em que documentação voce achou ela? garimpei a do BlazeDS e nada! >

Deixe um Comentário


NOTA - Você pode usar estesHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>