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


由於java中沒有指針,不能像C++一樣通過指針的方式實現一個函數返回多個值,因此在java中必須采用變通的方式解決,常用的方式有以下幾種:

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

2、通過map或者數組的方式來返回多個值;

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

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

使用EnumMap作為返回值類型,自己定義一個enum,將可能返回的屬性名定義為enum取值即可。

使用示例:

1、定義enum值:

1 enum ExpertOpKey {
2 eokAdd,
3 eokDel
4 }
2、實現能返回多個值的方法:

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 }
3、調用方法獲取多個返回值:

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 }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM