由于java中没有指针,不能像C++一样通过指针的方式实现一个函数返回多个值,因此在java中必须采用变通的方式解决,常用的方式有以下几种:

1、封装一个实体类,将要返回的值封装进去;

2、通过map或者数组的方式来返回多个值;

第一种方案不够优雅,而且每次要返回多个值时就去封装一个实体类,这样会导致实体类多到泛滥;

第二种方案必须采用实现方法和调用方法约定的Key或者下标,如果只是系统内部使用问题不大,但是如果与外部系统对接时,调用方不知道具体的Key值或者下标,只能通过文档或者查看代码,通用性不强;

使用EnumMap作为返回值类型,自己定义一个enum,将可能返回的属性名定义为enum取值即可。

使用示例:

1、定义enum值:

1 enum ExpertOpKey {
2 eokAdd,
3 eokDel
4 }
2、实现能返回多个值的方法:

1 private static EnumMap<ExpertOpKey, Object> testFunc() {
2 EnumMap<ExpertOpKey, Object> map = new EnumMap<ExpertOpKey, Object>(ExpertOpKey.class);
3 map.put(ExpertOpKey.eokAdd, “hello, world”);
4 map.put(ExpertOpKey.eokDel, 193);
5
6 return map;
7 }
3、调用方法获取多个返回值:

1 public static void main(String[] args) {
2 EnumMap<ExpertOpKey, Object> map = testFunc();
3 System.out.println(map.get(ExpertOpKey.eokAdd));
4 System.out.println(map.get(ExpertOpKey.eokDel));
5 }

Java中如何实现一个函数返回多个值相关推荐

  1. C语言如何让一个函数返回多个值

    转载:https://jingyan.baidu.com/article/d169e1860d278d436711d854.html 一.实现方法 1.用指针和数组(数组名本质上是一个指针): 2.或 ...

  2. java 需要返回类型_在Java中,当一个方法不需要返回数据时返回类型必须是

    [问答题]在滑动轴承中什么是瓦背?其特点有哪些? [多选题]起重机采用变频调速改造后,有哪些效果? [判断题]当热继电器动作不准确时,可用弯折双金属片的方法来调整. [单选题]X62W型万能铣床进给电 ...

  3. C语言——选择控制结构 寻找中位数v1.0编写一个函数返回三个整数中的中间数。函数原型:int mid(int a, int b, int c);功能是返回a,b,c三数中大小位于中间的一个数。

    寻找中位数v1.0 编写一个函数返回三个整数中的中间数. 函数原型:int mid(int a, int b, int c); 功能是返回a,b,c三数中大小位于中间的一个数. 程序运行结果示例1: ...

  4. java 中调用 Matlab 的函数

    一.matlab版本必须支持java 在command 模式下面运行deploytool,如果支持该命令即可使用 二.matlab中function的书写 %定义一个函数operation(a,b), ...

  5. Java中怎么样检查一个字符串是不是数字呢

    问题:Java中怎么样检查一个字符串是不是数字呢 在解析之前,怎么样检查一个字符串是不是数字呢 回答一 这些通常是由一个简单的用户自定义函数去解决的(即,自带的 "isNumeric&quo ...

  6. c++中函数放在等号右边_如何从C或C++中的函数返回多个值?

    新程序员通常在寻找从函数返回多个值的方法.不幸的是,C和C++不允许直接这样做.但是幸运的是,通过一些巧妙的编程,我们可以轻松实现这一目标. 下面是从C函数中返回多个值的方法: 通过使用指针. 通过使 ...

  7. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  8. Java中如何创建一个文件或者文件夹

    Java中如何创建一个文件或者文件夹 创建一个文件夹: 调用Java中File类中的mkdir( )或者mkdirs( )方法 boolean  makdir( ):创建一个文件夹,创建成功返回tru ...

  9. java中如何定义一个_java中如何定义一个方法

    java中如何定义一个方法 发布时间:2020-06-20 16:39:15 来源:亿速云 阅读:88 作者:Leah java中如何定义一个方法?相信很多新手小白还没学会这个技能,通过这篇文章的总结 ...

最新文章

  1. 2021 最新版 Spring Boot 速记教程
  2. MNIST数据集实现手写数字识别(基于tensorflow)
  3. 实力封装:Unity打包AssetBundle(大结局)
  4. Spark _02SparkCore_RDD
  5. Python 如何调用 Java
  6. 浅入浅出理解傅里叶变换
  7. 从有理数到实数和数的连续体
  8. PreparedStatement是如何防止SQL注入的?
  9. 我的博客园开张了,记录每天学习,工作。
  10. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。 - 今日头条(www.toutiao.com)...
  11. vue+webpack实现一个todolist
  12. 软考软件设计师中java题_计算机基础试题整理与解析-软考中级软件设计师
  13. matlab中如何实现开关可调频率,如何设计利用数字控制的电压可调开关电源
  14. 1. 代码效率优化方法论
  15. 机器视觉方向的大牛介绍
  16. php memcache内存大小,PHP memcache 内存缓存 数据库查询 应用 高洛峰 细说PHP
  17. Python之Jacobi迭代计算
  18. 韵脚与押韵的练习(十三韵)
  19. 微信 群相册服务器,微信也有群相册!用这个小程序,轻松优雅收集聚会合影...
  20. Redux和react-redux的区别是什么?

热门文章

  1. store(商城项目)Springboot+springmvc+ajax+mybatis(15)
  2. ListView与ListView适配器
  3. C语言递归算法——汉诺塔问题(河内塔)
  4. 嵌入式 ARM 控制器采用 NXP 的高性能处理器 I.MX6ULL
  5. 锚定物决定成败?四国央行数字货币对比
  6. Azure SQL 数据库连接字符串
  7. 有道笔记 android,随时随地,记录一切:有道笔记Android版体验
  8. win10系统激活 快捷方式
  9. 【硬件之AD篇】两层PCB的各个板层分析
  10. 远程桌面无法连接 计算机死机,远程桌面被远程的机器就死机解决方案