- 浏览: 93776 次
- 性别:
- 来自: 南京
最新评论
-
0dragon:
同求解啊
flex socket 与java通信碰到的问题 -
sunli0201:
好东西 赞一个
Flex仿苹果导航 -
kangkang203:
能替换不同地图更好
开源项目:中国地图Flash组件 -
yjq8116:
springgrph 有官方网址吗?
Flex Springgraph使用 -
chenfeiyueyue:
我也想要不同的省份设置不同的颜色,如果有县市级就更好了
开源项目:中国地图Flash组件
在使用openamf的类映射功能时,一般需要在as端也定义和java pojo类似的对象,用于类的映射。
有关使用openamf的类映射,请见之前的《openAMF自定义类映射(custom-class-mapping)的使用》
如果手工去写这些和java对应的flex vo对象比较麻烦,这里用java写了个简单的as vo对象生成的工具,代码如下:
/**
*
*/
package com.nstar.base.util;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Field;
import org.apache.commons.lang.StringUtils;
/**
* @author Administrator
*
*/
public class VoUtils {
public VoUtils(){}
//根据java类对象的类型返回vo类型
public static String getClassType(Class c){
String typeName = c.getSimpleName();
if (typeName.equals("String") || typeName.equals("Date")) {
return typeName;
}else if (typeName.equals("BigDecimal") || typeName.equals("Decimal") ||
typeName.equals("Double")) {
return "Number";
}else if (typeName.equals("Integer")) {
return "int";
}else if (typeName.equals("Boolean")) {
return "boolean";
}else {
return "*";//其它类型的设置为未知类型
}
}
//重复c字符count次,用于格式化生成的as文件
public static String repeat(String c, int count){
String temp = "";
for(int i = 0;i<count ;i++){
temp += c;
}
return temp;
}
/**
* 生成as文件
* @param pojoName java对象名称
* @param packageName flex中vo对象的包名
* @throws ClassNotFoundException
* @throws IOException
*/
public static void generateAsFile(String pojoName, String packageName, String folder)
throws ClassNotFoundException, IOException {
Class c = Class.forName(pojoName);
Field[] fields =c.getDeclaredFields();
//as的vo对象名称结尾加上VO标志
File f = new File(folder+c.getSimpleName()+"VO.as");
BufferedWriter bw = new BufferedWriter(
new FileWriter(f));
//包名,没有设置包名就取和java pojo一样的包名
if (StringUtils.isEmpty(packageName)){
bw.write("package "+c.getPackage().getName()+"\n{\n");
}else{
bw.write("package "+packageName+"\n{\n");
}
//写类
bw.write(repeat(" ",4)+"public class "+c.getSimpleName()+"VO\n");
bw.write(repeat(" ",4)+"{\n");
//写属性
for(int i=0;i<fields.length;i++){
Class fieldType = fields[i].getType();
String typeName = getClassType(fieldType);
bw.write(repeat(" ",8)+"private var _"+fields[i].getName()+":"+typeName+";\n");
}
bw.write("\n\n\n");
//写空的构造函数
bw.write(repeat(" ",8)+"public function "+c.getSimpleName()+"VO(){}\n\n");
//写 setter/getter 方法
for(int i=0;i<fields.length;i++){
Class fieldType = fields[i].getType();
String typeName = getClassType(fieldType);
//setter
bw.write(repeat(" ",8)+"public function set "+fields[i].getName()+"(value:"+typeName+"):void{\n");
bw.write(repeat(" ",12)+"this._"+fields[i].getName()+" = value;\n");
bw.write(repeat(" ",8)+"}\n\n");
//getter
bw.write(repeat(" ",8)+"public function get "+fields[i].getName()+"():"+typeName+"{\n");
bw.write(repeat(" ",12)+"return this._"+fields[i].getName()+";\n");
bw.write(repeat(" ",8)+"}\n\n\n");
}
bw.write(repeat(" ",4)+"}\n");
bw.write("}");
bw.close();
}
//测试,写了个测试
public static void main(String[] args) throws ClassNotFoundException, IOException {
// TODO Auto-generated method stub
String[] pojos = {
"com.nstar.model.orderexpress.Area",
"com.nstar.model.orderexpress.FoodType",
"com.nstar.model.orderexpress.Holiday",
"com.nstar.model.orderexpress.ItemSpec",
"com.nstar.model.orderexpress.ItemSpecType",
"com.nstar.model.orderexpress.Menu2Rest",
"com.nstar.model.orderexpress.OrderInfo",
"com.nstar.model.orderexpress.OrderInfoExp",
"com.nstar.model.orderexpress.OrderMenu",
"com.nstar.model.orderexpress.OrderState",
"com.nstar.model.orderexpress.OrderType",
"com.nstar.model.orderexpress.Repository",
"com.nstar.model.orderexpress.RepositoryType",
"com.nstar.model.orderexpress.RestInfo",
"com.nstar.model.orderexpress.UserInfo",
"com.nstar.model.orderexpress.UserLevel",
"com.nstar.model.orderexpress.UserType"
};
for(int i=0;i<pojos.length;i++){
//Class c = Class.forName(pojos[i]);
//System.out.println("registerClassAlias('"+pojos[i]+"',com.nstar.orderexpress.vo."+c.getSimpleName()+"VO);");
VoUtils.generateAsFile(pojos[i],"com.nstar.orderexpress.vo","C:/temp/");
}
}
}
测试时可以随便找个Java对象来测试,下面是其中生成的一个文件(OrderTypeVO)的内容:
package com.nstar.orderexpress.vo
{
public class OrderTypeVO
{
private var _orderTypeId:String;
private var _name:String;
private var _remarks:String;
public function OrderTypeVO(){}
public function set orderTypeId(value:String):void{
this._orderTypeId = value;
}
public function get orderTypeId():String{
return this._orderTypeId;
}
public function set name(value:String):void{
this._name = value;
}
public function get name():String{
return this._name;
}
public function set remarks(value:String):void{
this._remarks = value;
}
public function get remarks():String{
return this._remarks;
}
}
}
转自:http://hi.baidu.com/xiaosa1984/blog/item/4a898df028f8eca7a50f52fa.html
王李丹
- hun2.2_1_.rar (2.7 MB)
- 下载次数: 39
发表评论
-
Flex报表制作
2012-03-07 10:21 982报表展示工具:jasperReport 3.0 falsh V ... -
As3对象传值与传引用
2011-03-01 14:32 3981转自: http://blog.csdn.net/lap ... -
一起来学alchemy
2011-01-26 10:36 953一起来学alchemy。 http://insider ... -
Flex Component Kit for Flash CS3 安装方法及前提
2011-01-25 09:30 1099原文:http://labs.adobe.com/wiki ... -
Flex在匿名方法移除自身的侦听方法
2010-12-20 21:32 1197public static function removePo ... -
跳出嵌套循环
2010-12-20 11:17 1038A: for (i=0; i <32; i+ ... -
flex模块销毁机制
2010-12-17 17:14 1640有问题就要解决,系统中共有六个模块,1,2,3,4,5,6。一 ... -
AS3 库资源 很多非常有用的类库
2010-12-16 15:01 880引用自:http://www.jdhcn. ... -
Flex 开源数据可视化框架 Axiis
2010-12-09 09:29 1384Axiis 是一个数据可视化框架,于五月份使用MIT许可证 ... -
flex socket 与java通信碰到的问题
2010-11-25 13:58 1760其实就是粘包问题了。 老实讲,到现在还是没 ... -
Socket粘包问题
2010-11-22 10:18 2253这两天看csdn有一些关 ... -
as3遍历对象所有属性的方法
2010-11-10 15:41 3305as3遍历对象所有属性的方法(包含Flex) 1: Obj ... -
Module中使用cairngorm的问题
2010-11-01 13:46 1102Module中使用cairngorm的问题: 多次加载mod ... -
flex profile
2010-10-28 14:38 1774今天使用profile来检测了下系统的性能,发现好多低级 ... -
关于mx_internal
2010-10-27 09:16 770mx_internal: 字面翻译:内部的。 这种声明的属 ... -
loadModuleReady使用中发现的问题
2010-10-26 14:06 787private function loadModuleR ... -
可删除列的datagrid
2010-10-22 15:52 858单击列头即可删除 -
Flex titleWindow resize
2010-09-29 08:44 1348Flex titleWindow resize -
EC2M
2010-09-28 17:05 830自己看吧,开源项目 -
Flex 应用程序性能: 改善客户端应用程序和服务器性能的技巧与技术
2010-09-28 10:35 937Flex 应用程序性能: 改善客户端应用程序和服务器性能的技巧 ...
相关推荐
jsp上使用object[]看不懂吧?写vo太烦琐了?ok,都交给map吧、本工具类的使命就是让map代替所有的vo,让编程变得更美好。 附有详细的使用例子。 java精英团队十年编程精华。
连oracle 数据库,将指定表转为java pojo 类 的 java demo
Java的几种对象(PO-VO-DAO-BO-POJO)解释
java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...
主要介绍了java实现相同属性名称及相似类型的pojo、dto、vo等互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
Feign发送Get请求时,采用POJO对象传递参数的最终解决方案.docx
Java中 PO VO BO DTO DAO 和 POJO 关系图
微信平台中所有的接受信息,发送信息,按钮菜单等POJO对象,还有用到的常量。 下面是个抽象出来的Message父类,下面还有ImageRequestMessage等子类 @XmlRootElement(name = "xml") @XmlAccessorType(XmlAccessType....
关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释
POJO转Map代码,POJO转Map代码POJO转Map代码POJO转Map代码
java的几种对象(PO_VO_DAO_BO_POJO)解释
1.Java POJO对象 2.基本类型:byte,short,int,long,float,double,boolean,char 3.包装类型:Byte,Short,Integer,Long,Float,Double,Boolean,Character 4.String 5.Collection 6.Map 7.Enum 8.TimeZone 9....
介绍了java递归菜单树转换成pojo对象的具体实现,有需要的朋友可以参考一下
5. Executor执行器要处理的SQL信息是封装到一个底层对象MappedStatement中 该对象包括SQL语句 输入参数映射信息 输出结果映射信息 其中输入参数和输出结果的映射类型包括HashMap集合对象 POJO对象类型
NULL 博文链接:https://zsl131.iteye.com/blog/627353
JAVA 中 的 什 么 是 POJO、VO、PO、DO、DTO 都 是 什 么 ? 他 们 有 什 么 区 别 ?
java术语(PO/POJO/VO/BO/DAO/DTO)
NULL 博文链接:https://swordboy007.iteye.com/blog/1706064
基于Druid的SqlParser模块解析create table语句创建java POJO和DAO类的效率工具
java(PO,VO,BO,DAO,POJO)Explained Collection 详解