Red de conocimiento informático - Material del sitio web - Cómo convertir manualmente ASObject a un objeto Java

Cómo convertir manualmente ASObject a un objeto Java

Al usar Flex + BlazeDS, si encuentra que el parámetro pasado en el lado flexible es ASObject en lugar del objeto Java correspondiente, puede escribir código para la conversión manual. Después de todo, ASObject ya contiene la información del objeto Java correspondiente. A continuación se muestran algunos métodos de ejemplo, algunos generalizados, otros no, y un caso en el que se convierte el método CriteriaVO.

A continuación

/**

* Si la aplicación Flex se ejecuta en modo de depuración, entonces deberá cambiar manualmente

* ASObject a su objeto concreto; de lo contrario, obtendrá algunas

* excepciones como

* "flex.messaging.io.amf.ASObject no se puede entregar a su clase X "

* , pero en modo normal no puedes hacer esto o recibirás una

* excepción de entrega en su lugar.

*

* @param

* @param sourceObjects

* @param targetObjectClass

* @return

* @throws InstantiationException

* @throws IllegalAccessException

*/

@SuppressWarnings("unchecked")

lista estática pública sourceObjects, Class targetObjectClass) lanza InstantiationException, IllegalAccessException {

List targetObjects = new ArrayList();

ASTranslator ast = new ASTranslator();

for (ASObject aso: sourceObjects) {

targetObjects.add((E) ast. convert(aso, targetObjectClass));

}

Devuelve objetos de destino.

}

@SuppressWarnings("unchecked")

público estático E convertASObject2JavaObject(ASObject sourceObject, Class targetObjectClass){

ASTranslator ast = new ASTranslator();

return (E)ast.convert(sourceObject, targetObjectClass);

}

Objeto estático público; convertASObject2JavaObject(ASObject sourceObject){

ASTranslator ast = new ASTranslator();

Objeto targetObject = null;

prueba {

targetObject = ast.convert(sourceObject, Class.forName(sourceObject.getType()));

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

return targetObject;

}

/**

* En modo de depuración, el tipo de elemento de la lista es COMO.

* @param criteriosVO

*/**

public static void convertASObject2JavaObject(CriteriaVO criteriosVO){

Lista> filterCriterias=new ArrayList>();

for(Object o:criteriaVO.getFilterCriteria()){

if(o instanciade ASObject){

filterCriterias.add( convertASObject2JavaObject((ASObject)o,FilterCriteriaVO.class));

}else if(o instancia de FilterCriteriaVO){

filterCriterias .add(( FilterCriteriaVO)o);

}

}

criteriaVO.setFilterCriteria(filterCriterias);

Lista sortCriterias =new ArrayList();

for(Object o:criteriaVO.getSortCriteria()){

if(o instancia de ASObject){

sortCriterias .

add(convertASObject2JavaObject((ASObject)o,SortCriteriaVO.class));

}else if(o instancia de SortCriteriaVO){

sortCriteria.add((SortCriteriaVO)o); p>

}

}

criteriaVO.setSortCriteria(sortCriterias);

}