smartinvoke入门系列4——Java与Flex传递复杂类型

Flex调用Java方法时,不仅可以传递基本数据类型,而且可以传递自定义复杂的数据类型。在这里我们把这种类型称作Bean Class Type,它的作用类似于J2EE里的Bean Class,只起着组织复杂数据的作用。

eclipse 工具栏上点击

Flex调用Java方法时,不仅可以传递基本数据类型,而且可以传递自定义复杂的数据类型。在这里我们把这种类型称作Bean Class Type,它的作用类似于J2EE里的Bean Class,只起着组织复杂数据的作用。

eclipse 工具栏上点击

  图标,打开新建对话框,输入如下内容:



 

 

点击完成,eclipse会自动生成cn.First.BeanTest类,内容如下:

package cn.first;

 import cn.smartinvoke.ide.declare.ABeanType;

 @ABeanType

 public class BeanTest{

 public BeanTest() {

 }

}

 

@ABeanType标注告诉eclipse这是一个Bean Class Type,它的修改会同步到First_项目的cn/first/BeanTest.as文件中,以便Flex的调用。在这里BeanTest.as BeanTest.java对应。Flex调用方法时传递的BeanTest.as类型对象会在java端被smartinvoke解析为BeanTest.java类型对象处理,反过来也一样。

 

我们在BeanTest.java 中添加name属性如下:

private String name;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

打开BeanTest.as你会发现,该name属性也被同步到这里,如下:

private var _name:String;

 public function set name(val:String):void{

   this._name=val;

 }

 public function get name():String{

   return this._name;

 }

 

我们在ServiceTest.java类中添加方法beanTest以便测试BeanTest类。内容如下:

public void beanTest(BeanTest bean){

     System.out.println(bean);

}

 

打开First_项目中的ServiceTest.as文件会发现beanTest方法已被同步到这里,如下:

 

public function beanTest(bean:BeanTest):void{

  this.call('beanTest',arguments);

}

FirstWin.mxml中调用ServiceTest.as类的beanTest方法你会发现Flex传递的BeanTest对象会被传递到Java端。

Bean Class Type类型中不仅可以定义基本的数据类型, 而且可以定义其他的Bean Class Type类型。当然Bean Class Type也可以继承其他的类。

 

 

图标,打开新建对话框,输入如下内容:

 

 

点击完成,eclipse会自动生成cn.First.BeanTest类,内容如下:

package cn.first;

 import cn.smartinvoke.ide.declare.ABeanType;

 @ABeanType

 public class BeanTest{

 public BeanTest() {

 }

}

 

@ABeanType标注告诉eclipse这是一个Bean Class Type,它的修改会同步到First_项目的cn/first/BeanTest.as文件中,以便Flex的调用。在这里BeanTest.as BeanTest.java对应。Flex调用方法时传递的BeanTest.as类型对象会在java端被smartinvoke解析为BeanTest.java类型对象处理,反过来也一样。

 

我们在BeanTest.java 中添加name属性如下:

private String name;

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

打开BeanTest.as你会发现,该name属性也被同步到这里,如下:

private var _name:String;

 public function set name(val:String):void{

   this._name=val;

 }

 public function get name():String{

   return this._name;

 }

 

我们在ServiceTest.java类中添加方法beanTest以便测试BeanTest类。内容如下:

public void beanTest(BeanTest bean){

     System.out.println(bean);

}

 

打开First_项目中的ServiceTest.as文件会发现beanTest方法已被同步到这里,如下:

 

public function beanTest(bean:BeanTest):void{

  this.call('beanTest',arguments);

}

FirstWin.mxml中调用ServiceTest.as类的beanTest方法你会发现Flex传递的BeanTest对象会被传递到Java端。

Bean Class Type类型中不仅可以定义基本的数据类型, 而且可以定义其他的Bean Class Type类型。当然Bean Class Type也可以继承其他的类。

 

注意SmartInvoke在这里只支持基本类型与复杂Bean类型的传递,不介意用户传递Service Class TypeBean Class Type类型,因为这样会增加程序的复杂度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值