日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 默认参数_Java 方法的参数可以有默认值吗?

發布時間:2023/12/19 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 默认参数_Java 方法的参数可以有默认值吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 方法的參數可以有默認值嗎?

例如

void method(String p1, int p2, bool p3=false);

回答

Java不支持這種特性,

如果你真的有需求,你可以

通過方法的重載間接的支持默認的參數值

使用工廠模式

重載

這個很簡單

void method(String p1, int p2, bool p3){

// ....

};

void method(String p1, int p2){

bool p3 = false;

// ...

};

這樣就相當于給p3一個默認的參數值。

但是有的時候如果參數太多,就不適合了。

就要用到下面的工廠方法

工廠方法

public class StudentBuilder

{

private String _name;

private int _age = 14; // this has a default

private String _motto = ""; // most students don't have one

public StudentBuilder() { }

public Student buildStudent()

{

return new Student(_name, _age, _motto);

}

public StudentBuilder name(String _name)

{

this._name = _name;

return this;

}

public StudentBuilder age(int _age)

{

this._age = _age;

return this;

}

public StudentBuilder motto(String _motto)

{

this._motto = _motto;

return this;

}

}

Student s1 = new StudentBuilder().name("Eli").buildStudent();

Student s2 = new StudentBuilder()

.name("Spicoli")

.age(16)

.motto("Aloha, Mr Hand")

.buildStudent();

在上面的示例中,我們沒有直接

的創建一個Student對象,而是

通過StudentBuilder來創建一個工廠,

然后在這個工廠中預先設定了一些模板,

為什么要創建一個StudentBuilder

而不是直接這樣寫:

Student s1 = new Student().age(16)

這樣寫有兩個壞處

實例化有些字段沒有初始化,可能存在

安全隱患

很多時候,我們創建一個Student之后,并不希望他有一個.age()方法,這個方法可能會被濫用。

總結

以上是生活随笔為你收集整理的java 默认参数_Java 方法的参数可以有默认值吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。