方法參數假如有預設值
之後有程式去call method時候可以省略參數
public class Test{
public Test(){
xxx(1,"");
xxx(1);
xxx();
}
public static void xxx(int a = 1 ,object b = null){
}
}
第3~6行call method都是呼叫同一個方法
但是參數數量卻是不一定要相同
像是Dapper套件中就常使用這樣方式
不帶parameters SQL就只要call QueryMultiple(sql)
需要parameters 換成 call QueryMultiple(sql,new {xxx=xxx})
需要timeout時間 換成 call QueryMultiple(sql,new {xxx=xxx},timeout)
之前寫法,要達到同樣目的
需要從一個方法變成三個方法
public class Test{
public Test(){
xxx(1,"");
xxx(1);
xxx();
}
public static void xxx(){}
public static void xxx(int a ){}
public static void xxx(int a ,object b ){}
}
當你不想按照順序時,可以直接使用 參數名稱:值
也就是具名引數
使用方式
具名引數
謝謝暐翰,不知道有此方式具名引數
請問您,Java 有方法參數使用預設值?
很遺憾,目前java不支持
只能用多載來間接實現
有人在open jdk提issue
但java 11沒有列入feature