java 一个函数如何返回多个值
2016-07-14 20:13
483 查看
转:http://www.cnblogs.com/beiyeren/p/3835548.html
在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!!
1、使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者通过源代码来查看。
2、传入一个引用进去,修改引用的属性值。问题:不实用。
3、通过泛型构造一个类似python的tuple类,或者构造一个JavaBean,其问题都是“一次性”,觉的不优雅。
使用EnumMap作为返回值类型,自己定义一个enum,将可能返回的属性名定义为enum取值即可。
这个类是实现
这个类是main入口
在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!!
网上这个问题的解决方法:
1、使用map返回值;这个方法问题是,你并不知道如何返回值的key是什么,只能通过doc或者通过源代码来查看。2、传入一个引用进去,修改引用的属性值。问题:不实用。
3、通过泛型构造一个类似python的tuple类,或者构造一个JavaBean,其问题都是“一次性”,觉的不优雅。
个人解决方案:
使用EnumMap作为返回值类型,自己定义一个enum,将可能返回的属性名定义为enum取值即可。package com.cy; import java.util.EnumMap; /** * Created by on 2014/7/10. */ public interface TestService { enum UserInfoProperty { ROOM,CELLPHONE,Name } public EnumMap<UserInfoProperty,Object> getUserInfoByName(String name); }
这个类是实现
public class TestServiceImpl implements TestService { @Override public EnumMap<UserInfoProperty, Object> getUserInfoByName(String name) { EnumMap<UserInfoProperty,Object> retMap = new EnumMap<UserInfoProperty, Object>(UserInfoProperty.class); retMap.put(UserInfoProperty.ROOM,"0003"); retMap.put(UserInfoProperty.CELLPHONE,"00004"); retMap.put(UserInfoProperty.Name,name); return retMap; } }
这个类是main入口
public class App { public static void main( String[] args ) { TestService testService = new TestServiceImpl(); String name = "testName"; EnumMap<TestService.UserInfoProperty,Object> userInfo = testService.getUserInfoByName(name); userInfo.entrySet().iterator(); System.out.println(userInfo.get(TestService.UserInfoProperty.Name)); System.out.println(userInfo.get(TestService.UserInfoProperty.ROOM)); System.out.println(userInfo.get(TestService.UserInfoProperty.CELLPHONE)); } }
相关文章推荐
- 读取文件内容并排序
- 尚学堂 JAVA DAY12 java程序执行时内存的分配
- JavaWEB小知识学习--验证码生成
- 尚学堂 JAVA DAY11 概念总结
- Java基本数据类型及数据类型转换
- Spring4 MVC文件下载实例
- Spring MVC实现文件下载
- java实现选择排序
- 如何去掉MyEclipse中的MyEclipse Derby
- Maven学习笔记(三)——使用Maven构件web项目
- JAVA 利用Throwable和Thread分析堆栈跟踪元素
- Java 数据保存与读取,保存数据信息并加密
- 第2章 Java内存区域与内存溢出异常
- JAVA集合框架之List HashSet去重及TreeSet排序详解
- SpringMVC实现上传和下载
- Java 7之基础 - 强引用、弱引用、软引用、虚引用
- java由出生日期算出年龄
- java常用设计模式趣解
- Java基础_内部类、静态内部类、成员内部类、局部内部类、匿名内部类 (转)
- Java异常处理:错误信息trace方式显示