因爲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 }