Java編程小技巧(1)——方法傳回兩個對象

原文地址: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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章