`
smartinvoke
  • 浏览: 105827 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

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类型,因为这样会增加程序的复杂度

  • 大小: 769 Bytes
  • 大小: 27 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics