java中如何實現一個函數返回多個值

因爲java中沒有指針,不能像C++同樣經過指針的方式實現一個函數返回多個值,所以在java中必須採用變通的方式解決,經常使用的方式有如下幾種:java

一、封裝一個實體類,將要返回的值封裝進去;數組

二、經過map或者數組的方式來返回多個值;函數

第一種方案不夠優雅,並且每次要返回多個值時就去封裝一個實體類,這樣會致使實體類多到氾濫;spa

第二種方案必須採用實現方法和調用方法約定的Key或者下標,若是隻是系統內部使用問題不大,可是若是與外部系統對接時,調用方不知道具體的Key值或者下標,只能經過文檔或者查看代碼,通用性不強;指針

使用EnumMap做爲返回值類型,本身定義一個enum,將可能返回的屬性名定義爲enum取值便可。code

使用示例:blog

一、定義enum值:文檔

1 enum ExpertOpKey {
2     eokAdd,
3     eokDel
4 }

二、實現能返回多個值的方法:get

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 }

三、調用方法獲取多個返回值:class

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 }
相關文章
相關標籤/搜索