簡體   English   中英

如何將默認和可選參數傳遞到 function 中,如 Java 中的 python

[英]How to pass a Default and Optional Parameter into a function like a python in the Java

我正在嘗試將 python 庫遷移到 java 本機腳本,但在遷移時我面臨着參數的極端復雜性。

在這里,我需要將具有不同數據類型的默認和可選參數的 python 方法遷移到 java 方法中的代碼:

def connect_network(self,
                        bssid=None,
                        proto="http",
                        check_redirect_code=True,
                        redirect_code='302',
                        portal_url=None,
                        subscriber_portal='scg',
                        expect_href_list_zd_sp='google',
                        check_user_block=False,
                        redirect_url='',
                        tnc_content="",
                        path="/tmp/"):
   pass

這是我在 java 等效項中嘗試的示例代碼:

public class LinuxClientUtils {

public void DefaultNameParameter1(HashMap<Integer, String> params){
    System.out.Println(params.toString());
}

public void DefaultNameParameter2(Map.Entry<String, String>... params){
    System.out.Println(params.toString());
}

public void DefaultNameParameter3(Optional<String> name, Optional<String> age){
    System.out.Println(name.toString());
}
 

}

我將在機器人框架中導入Java庫並調用這樣的方法,

*** Settings ***
Library     test.LinuxClientUtils
*** Test Cases ***
Testing
   [tags]            service
   [Documentation]   Add Network
   Default Name Parameter3    req_network_id=89

盡管如此,這些方法都沒有奏效。


  • 我嘗試了以下 URL Link-1 Link-2中的幾種方法,但我無法從這些鏈接中弄清楚。

我是 JAVA 編程的新手,無法解決這個問題。 任何幫助都會很棒,謝謝。

為參數 object 創建一個新的 class。 它將每個參數作為一個字段。

這個參數class的構造函數沒有參數。 相反,每個字段都有一個默認值。 (無論如何, nullfalse默認自動分配給 object 和 boolean 字段。)

您的 function 只會將參數 object 作為單個參數。

 public class A {

    static class ParameterObject {
        public ParameterObject(){
            //empty
        }
        private int x;
        private boolean b;
        private String s;

        public int getX() {
            return x;
        }

        public void setX(int x) {
            this.x = x;
        }

        public boolean isB() {
            return b;
        }

        public void setB(boolean b) {
            this.b = b;
        }

        public String getS() {
            return s;
        }

        public void setS(String s) {
            this.s = s;
        }
    }

    public static void f(ParameterObject o){
        //Do something with object
    }
    public static void main(String[] args) {
        ParameterObject paramObj=new ParameterObject();
        paramObj.setX(10);
        f(paramObj);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM