[英]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
盡管如此,這些方法都沒有奏效。
我是 JAVA 編程的新手,無法解決這個問題。 任何幫助都會很棒,謝謝。
為參數 object 創建一個新的 class。 它將每個參數作為一個字段。
這個參數class的構造函數沒有參數。 相反,每個字段都有一個默認值。 (無論如何, null
和false
默認自動分配給 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.