原文地址:Java编程小技巧(1)——方法传回两个对象 | Stars-One的杂货小窝

题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回

当有这样的情况,我们需要返回两个或多个对象,该怎么做呢?

1.多对象封装成单个类中的多个字段

这种方法详细各位都能理解,无非就是新建一个类,然后类里面再有几个字段即可

class MyResult {
Student student;
People people; //省略get/set方法和构造方法
} public MyResult test(){
Student student = new Student();
People people = new People(); return new MyResult(student,people);
}

但如果我们情况比较多的话,每次新建类都很麻烦,有没有更方便的一种使用呢?

当然是有的,我们可以使用Pair类

2.使用Pair类和MutableTriple

PairMutableTriple都是lang3包中提供的,所以要使用,得先加入依赖

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.8</version>
</dependency>

还是上面的例子,我们可以使用Pair改造一下

public Pair<Student,People> test(){
Student student = new Student();
People people = new People();
Pair<Student,People> pair = Pair.of(student, people); return pair;
} //获取数值
Student s = pair.getLeft();
People p = pair.getRight();

可以看到,我们无需声明一个新的类即可实现我们需要返回两个对象的需求

如果是三个对象,则是同理,只不过是使用到了MutableTriple,泛型接收三个

MutableTriple<String, Integer, String> pairs = MutableTriple.of("", 1, "");

//获取数值
String s = pairs.getLeft();
Integer i = pairs.getMiddle();
String s1 = pairs.getRight();

什么,你问我有没有四个对象的Pair类,那肯定是没有的

因为超过三个,官方都推荐新建个类来实现了!!

补充-Kotlin中的Pair和Triple类

最后,在Kotlin中,默认已经上述这两个类的实现

//Pair使用
val data = Pair("",1)
val fstValue = data.first
val secValue = data.second //Triple使用
val data = Triple("",1,2)
val fstValue = data.first
val secValue = data.second
val thirdValue = data.third

最新文章

  1. T-SQL 基础学习 01
  2. jquery ajax post 中文乱码解决
  3. iOS不得姐项目--封装状态栏指示器(UIWindow实现)
  4. ios 设计软件
  5. ActiveMQ和Tomcat的整合应用(转)
  6. TFTPD32, 3CDaemon, FlashFxp
  7. Python正则表达式学习笔记
  8. jdk源码剖析四:JDK1.7升级1.8 HashMap原理的变化
  9. web测试实践——day01
  10. tomcat logs目录下 日志文件含义及配置位置
  11. 关于ajax请求数据,并将数据赋值给全局变量的一些解决方法
  12. docker常用操作备忘
  13. Python模块之time、datetime
  14. C#事件の.net下的EventArgs和EventHandler
  15. .Net外包篇:我是如何看待外包的
  16. Factors of Factorial AtCoder - 2286 (N的阶乘的因子个数)(数论)
  17. commit lint规范化团队git提交信息
  18. 四:(之三)制作镜像和一些docker命令
  19. tinyxml2使用
  20. Spring mvc接收中文参数值乱码(tomcat配置问题)

热门文章

  1. 说说for循环的两种写法
  2. spring-boot 注解解析
  3. 在java web工程中jsp页面中使用kindeditor
  4. 爬虫-数据解析-xpath
  5. piwik安装部署
  6. 遇到过的问题之“解决 No qualifying bean of type 问题”
  7. 写了一个web os脚手架
  8. 让IE兼容background-size的方法_background-size ie下使用
  9. 可想实现一个自己的简单jQuery库?(九)
  10. 前端面试题整理——手写flatern摊平数组