java 函数返回类_Java 方法返回多种类型

packagecom.cxyapi.generics;importjava.util.HashMap;importjava.util.Map;importjava.util.Map.Entry;importnet.sf.json.JSONObject;/**Java方法返回多种类型

*@authorcxy @ www.cxyapi.com*/

public classReturnMultipleResult

{public static voidmain(String[] args)

{//方式一:使用json

JSONObject result1=ReturnMultipleResult.way1();

System.out.println(result1);

JSONObject jos=(JSONObject)result1.get("s");

System.out.println(jos.get("name"));/*JSONObject中存放的都是Object类型(其实是JSONObject类型)

* 如果想使用原来的类型,还需要其他的转换方式(toBean方法)

* 但是toBean方法 对于 有自定义构造函数的class,还需要一个init方法或定义映射

* 好麻烦呀~

* 并且这种方式还需要导入各种jar包

* 但是这种方式并不是一无是处,在action/controller层面还是很好用的,不适合纯业务处理的bo层。*/System.out.println("========================");//方式二:集合

Map result2=ReturnMultipleResult.way2();

System.out.println(result2);for(Entryone: result2.entrySet())

{if(one.getKey().equals("s"))

{

Student s=(Student)one.getValue();

s.show();

}else if(one.getKey().equals("t"))

{

Teacher t=(Teacher)one.getValue();

t.show();

}

}/*这种方式采用Object超级父类来擦出类型差异

* 但是这种方式处理起来比较复杂,你需要自己判断到底是哪种类型的,并做相应的类型转化*/System.out.println("========================");//方式三:使用泛型元组

TwoTuple result3=ReturnMultipleResult.way3();

result3.first.show();

result3.second.show();

System.out.println(new TwoTuple("cxy",1));//应该不用多说了吧~ 优势太明显了,不用判断,不用转型,不用导入jar包,随意更换类型

}//方式一:使用json返回多个结果对象

public staticJSONObject way1()

{

Student s=new Student("小明","清华大学");

Teacher t=new Teacher("cxyapi", "Java编程");

JSONObject backObject=newJSONObject();

backObject.put("s", s);

backObject.put("t", t);returnbackObject;

}//方式二:集合方式

public static Mapway2()

{

Student s=new Student("小明","清华大学");

Teacher t=new Teacher("cxyapi", "Java编程");

Map backObject=new HashMap();

backObject.put("s", s);

backObject.put("t", t);returnbackObject;

}//方式二:泛型元组

public static TwoTupleway3()

{

Student s=new Student("小明","清华大学");

Teacher t=new Teacher("cxyapi", "Java编程");return new TwoTuple(s,t);

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值