题目是个 伪命题 ,由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 类Pair 和 MutableTriple 都是lang3包中提供的,所以要使用,得先加入依赖
org.apache.commons commons-lang33.8
还是上面的例子,我们可以使用Pair改造一下
public Pairtest(){ Student student = new Student(); People people = new People(); Pair pair = Pair.of(student, people); return pair; } //获取数值 Student s = pair.getLeft(); People p = pair.getRight();
可以看到,我们无需声明一个新的类即可实现我们需要返回两个对象的需求
如果是三个对象,则是同理,只不过是使用到了MutableTriple,泛型接收三个
MutableTriplepairs = MutableTriple.of("", 1, ""); //获取数值 String s = pairs.getLeft(); Integer i = pairs.getMiddle(); String s1 = pairs.getRight();
什么,你问我有没有四个对象的Pair类,那肯定是没有的:joy:
因为超过三个,官方都推荐新建个类来实现了!!
补充-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


