场景

当我们调用某个方法,需要有超过一个值的返回时,我们通常会怎么做,比如现在需要调用方法返回姓名和年龄两个属性(假如姓名为张三,年龄为12)。

  • 方式一:使用Map,将Map中分别放入name为key,张三为value;age为key,12为value。
    • 缺点是需要定义key值,且书写语法比较繁琐。
    • 优点是定义明确。
  • 方式二:直接定义一个Person对象,定义name和age两个属性。
    • 缺点是比较繁琐,这个Person对象可能整个项目中只被使用这一次。
    • 优点是定义非常明确,不容易产生歧义。

新的方法

下面介绍一种新的方法,当我们方法调用返回值大于一个属性,且就仅有这一次调用,不存在复用和共用问题时,可以采用如下方式:

package objectDemo;

import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.ImmutableTriple;

public class Demo {

    public static void main(String[] args) {
        ImmutablePair<String, Integer> person = ImmutablePair.of("张三", 12);
        System.out.println(person);

        ImmutableTriple<String, Integer, String> personInfo = ImmutableTriple.of("李四", 20, "上海");
        System.out.println(personInfo);
    }
}

输出结果为:

(张三,12)
(李四,20,上海)
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐