• java 一个函数EnumMap返回多个值


    java 一个函数如何返回多个值

     

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

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

    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));
        }
    }
  • 相关阅读:
    echarts做飞线图
    git 检出项目部分目录(稀疏检出)
    nuxt.js引入客户端脚本和第三方库出现window/document/ navigator未定义问题
    防止重复发送 Ajax 请求
    利用CSS、JavaScript及Ajax实现图片预加载的三大方法
    JavaScript中this的指向问题
    掌握jQuery插件开发
    原生javascript实现图片放大镜效果
    javascript实现页面滚屏效果
    JavaScript利用闭包实现模块化
  • 原文地址:https://www.cnblogs.com/timssd/p/5429157.html
Copyright © 2020-2023  润新知