在开发数据驱动的Flex企业级开发中,会有很多数据通过JavaBean在Flex和java之间传输.
下面这个方法可以简单实现把javabean转换成flexbean.
package flex;
import java.lang.reflect.Field;
public class JavaBean2AsBean {
public static void toAsObject(Class clazz) {
StringBuilder sb = new StringBuilder();
sb.append("package ").append(clazz.getPackage().getName()).append(" {\n");
sb.append("\t[RemoteClass(alias=\"").append(clazz.getName()).append("\")]\n");
sb.append("\tpublic class ");
sb.append(clazz.getSimpleName()).append(" {");
Field[] fields = clazz.getDeclaredFields();
for (Field field : fields) {
sb.append("\n\t\t");
sb.append("public var ").append(field.getName());
sb.append(":").append(fieldTypeName(field)).append(";");
}
sb.append("\n\t}"); // end class
sb.append("\n}"); // end package
System.out.println(sb.toString());
}
public static String fieldTypeName(Field f) {
String superName = f.getType().getSuperclass().getName();
if (superName.equalsIgnoreCase("java.lang.Number")) {
return "Number";
}
return f.getType().getSimpleName();
}
}