在开发过程中,经常会有这种情况,就是一个函数需要返回多个值,这是一个问题!!

网上这个问题的解决方法:

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 getUserInfoByName(String name);

}

这个类是实现

public class TestServiceImpl implements TestService {

@Override

public EnumMap getUserInfoByName(String name) {

EnumMap retMap = new EnumMap(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 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 map 多个值_java 一个函数EnumMap返回多个值相关推荐

  1. c语言 电梯调度,c语言函数如何返回两个值或多个值(结合 小飞 电梯调度算法)...

    正常思维:使用return 语句,但每调用一次函数 return 语句只能返回一个值 .这是C语言语法规则. 该怎么实现一个函数返回两个值或是多个值?,可以采用"间接方法".大概有 ...

  2. Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值

    Long类型传到前端失去精度(2):Long类型不是实体类的某一个字段,Long类型是一个函数的返回值 又是转换Mybatis-Plus的一天,又遇到了之前熟悉的问题:Long类型传到前端失去精度.可 ...

  3. JS-写一个函数,返回参数的平方和

    <script> // 3.写一个函数,返回参数的平方和? function sum() { let a = 0; for (let i = 0; i < arguments.len ...

  4. java map对象排序输出_java实现对象的排序(List和Map)

    java实现对象的排序(List和Map) List和Map的排序 在实际的开发当中,我们经常 在文件浏览的时候经常有多种浏览方式,按时间整箱排序,逆向排序,按大小正逆向排序 ,按 按价格正逆向排序, ...

  5. java map集合详解_JAVA干货:Map 集合详解

    java.util.Map集合 Map集合的特点: 1.Map集合是一个双列集合,一个元素包含两个值(一个key,一个value) 2.Map集合中的元素,key和value的数据类型可以相同,也可以 ...

  6. java map key是否存在_java如何判断map集合中是否存在key?

    java如何判断map集合中是否存在key?,方法,遍历,不存在,键值,是一个 java如何判断map集合中是否存在key? 易采站长站,站长之家为您整理了java如何判断map集合中是否存在key? ...

  7. java map存储list集合_Java集合类(List、map、list集合)

    1.1集合类的概述 Java.util包中提供了一些集合类,这些集合类右被称为容器. 提到容器不难想到数组,集合类与数组不同之处是: 数组的长度是固定长度,集合的长度是可变的: 数组是用来存放基本数据 ...

  8. python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...

    建议不是你不应该使用True,False或None.这只是你不应该使用如果x == True. 如果x == True是愚蠢的,因为==只是一个二进制运算符!它的返回值为True或False,取决于它 ...

  9. python一个函数调用另一个函数的返回值_python-调用另一个函数后立即从函数返回...

    函数calculate_attribute不返回值:它只能通过副作用起作用. 通常在该函数中,我必须写以下几行: print('some message') set_attribute(value) ...

最新文章

  1. Spring Boot 最最最常用的注解梳理
  2. 如何把讨厌的人踢出局域网(kickthemout)
  3. 替换k个字符后最长重复子串
  4. Scikit-Learn 常用函数
  5. jetty代理jetty_如何在Jetty中使用SPDY
  6. 第一篇 多线程笔试面试题汇总(转)
  7. Wet Shark and Flowers(思维)
  8. 精英主义 遗传算法 matlab,遗传算法matlab程序
  9. c语言 gt 5u,毕业论文_基于51单片机的C语言程序设计实训100例5喜欢就下吧(全文完整版)...
  10. 卡巴斯基重新激活试用版的方法
  11. PC微信小程序突然Charles抓不到包
  12. mobi电子书中删除多余的空格
  13. 形式语言与自动机第一课
  14. linux批量文件夹名字,linux: 批量修改文件夹及文件夹下文件的名字
  15. Postgresql 配置远程访问
  16. jQWidgets v8.0.0正式发布
  17. R 回归分析 多元线性回归
  18. XMind 8 Update 7下载安装破解
  19. 分布式锁的简介与作用
  20. mysql码表是什么意思_什么是码表,什么是维度表?

热门文章

  1. iOS开发-多线程编程技术(Thread、Cocoa operations、GCD)
  2. 【计算机网络复习 数据链路层】3.1 数据链路层功能概述
  3. 【剑指offer】面试题66:构建乘积数组(Java)
  4. 计算机组成原理——计算机系统的性能指标(机器字长、存储容量、运算速度)
  5. 命令行设置dns_dos命令netsh图文教程,设置修改IP地址子网掩码网关命令行改dns...
  6. 如何实现对外部php文件的调用,laravel如何引用外部文件
  7. 利用Excel进行成对(配对)T检验
  8. 单词搭配用法查询网站
  9. 主成分分析PCA以及特征值和特征向量的意义
  10. duilib中界面的布局方式