亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當我調用不同的包時,如何在 Java 中返回多個對象類型(String、int、int)?

當我調用不同的包時,如何在 Java 中返回多個對象類型(String、int、int)?

三國紛爭 2023-08-23 10:38:49
我試圖將多個對象類型(String、int、int)傳遞到另一個 package1 中,并讓 package1 返回(String、int、int)。但我想做到這一點,而不通過傳遞一個類將原始 package2 導入到 package1 中。方法1:傳遞一個對象列表,并在調用者處將其轉換回 String/int。(我讀過傳遞對象是一種禁忌,應該傳遞類或僅傳遞一種特定類型)//package1 - cannot import any other packagespublic List<Object> returnvalue (String aString, int aInt, int bInt) {  //Just an example of processed values  aString = aString + "append";   aInt++;  bInt = bInt+2;  List<Object> returnvalue = new ArrayList<>();  returnvalue.add(aString);  returnvalue.add(aInt);  returnvalue.add(bInt);  return returnvalue;}//package2 - can import package1 insideint aInt = 1;int bInt = 1;List<Object> receivevalue = package1.returnvalue("aString",aInt,bInt);String receivestring = (String)receivevalue.get(0);String receiveint1 = (int)receivevalue.get(1);String receiveint2 = (int)receivevalue.get(2);方法2:傳遞一個字符串列表,并在方法內對其進行轉換。(這樣我就不會傳遞對象)//package1 - cannot import any other packagespublic List<String> returnvalue (String aString, String aInt, String bInt) {  //Just an example of processed values  aString = aString + "append";  int tmpInt = Integer.valueOf(aInt);  tmpInt++;  aInt = String.valueOf(tmpInt);  int tmpInt2 = Integer.valueOf(bInt);  tmpInt2=tmpInt2-2;  bInt = String.valueOf(tmpInt2);  List<String> returnvalue = new ArrayList<>();  returnvalue.add(aString);  returnvalue.add(aInt);  returnvalue.add(bInt);  return returnvalue;}//package2 - can import package1 insideint aInt = 1;int bInt = 1;List<String> receivevalue = package1.returnvalue("aString",aInt,bInt);String receivestring = receivevalue.get(0);String receiveint1 = receivevalue.get(1);String receiveint2 = receivevalue.get(2);從我讀到的內容來看,大多數人似乎建議創建一個類并傳遞該類,這樣它就具有類型安全性并且更具可讀性。但是,如果不將 package2 調用到 package1 中,我相信這是不可能的?我想在不導入任何模型類的情況下執行此操作,package1 必須完全獨立。我想知道哪一個是最好的,是否有更好的方法來實現我想要實現的目標?
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

在 package1 中創建一個 POJO 類來保存您的輸入/輸出值,例如:


class Data {

    public String s;

    public int a1;

    public int a1;

}

那么您可以更改以下簽名:


public List<Object> returnvalue (String aString, int aInt, int bInt) 


public Data returnValue(Data aData)

更新


假設 package1 中有 2 個類


Data.java:


package package1;


public class Data {

    public String s;

    public int a1;

    public int a2;

}

和Solution.java:


package package1;


public class Solution {

    public Data returnValue(Data input) {

        Data data = new Data();

        data.s = input.s + "append";

        data.a1 = input.a1 + 1;

        data.a2 = input.a2 + 2;


        return data;

    }

}

您可以在 packate2 中使用它們,如下App.java:


package package2;


import package1.Data;

import package1.Solution;


public class App {

    public static void main(String[] args) throws Exception {

        Data input = new Data();


        input.s = "ipsum";

        input.a1 = 1;

        input.a2 = 2;


        Solution solution = new Solution();

        Data result = solution.returnValue(input);


        // use result

    }

}


查看完整回答
反對 回復 2023-08-23
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

您可以定義一個java類,它具有所有三個(String,int,int)屬性,然后您可以返回它的對象。希望能幫助到你。



查看完整回答
反對 回復 2023-08-23
  • 2 回答
  • 0 關注
  • 201 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號