我試圖在這裏和Web上找到它,但是我不能。在java中「創建」是什麼意思
我在代碼是這樣的:
private static myClassName create(listOfArguments) {}
它看起來對我來說就像是myClassName構造函數,但正常的構造看起來有點不同。這究竟是什麼創建的意思,它是什麼?
我試圖在這裏和Web上找到它,但是我不能。在java中「創建」是什麼意思
我在代碼是這樣的:
private static myClassName create(listOfArguments) {}
它看起來對我來說就像是myClassName構造函數,但正常的構造看起來有點不同。這究竟是什麼創建的意思,它是什麼?
這不是別的,而是一種可能在內部調用構造函數的私有「工廠」方法。
像Optional.of()但只是:私人。
含義;
MyClass whatever = new MyClass(args ...
使用這種方法,你可以寫
MyClass whatever = create(args ...
這是所有有這樣的:通常你會如編寫代碼。
這個一個好理由我看到有這樣一個方法:避免代碼重複。當你的代碼中有10條新語句時,那麼就意味着觸及10條線。當你有這個創建方法時,可以在該方法中包含一些更改。儘管如此;有一個靜態私人工廠方法是一個相當不常見的,令人驚訝的模式。
這只是其中create
是出了名的方法,myClassName
是返回類型和private
static
- 訪問修飾符
create
這裏是一個方法名。
有一個叫模式Factory method
https://en.wikipedia.org/wiki/Factory_method_pattern,看起來像這樣:
public class MyClass {
private MyClass(String arg) {
// ... init
}
public static create(String arg) {
return new MyClass(arg);
}
}
這可能是有用的,如果你必須有(或希望有)一個「適合所有的情況下,構造」(例如,集中您的施工代碼)。它可能不是使用這種通用的構造很方便,所以你可以創建一些工廠方法:
public class StringOrDate {
private final String string;
private final Date date;
private StringOrDate(String string, Date date) {
this.string = string;
this.date = date;
}
pubilc static createString(String string) {
return new StringOrDate(string, null);
}
pubilc static createDate(Date date) {
return new StringOrDate(null, date);
}
}
正如其他人所指出的,create
不有Java的任何特殊的意義 - 這僅僅是一個普通的方法。在這種情況下,該方法什麼都不做,甚至不會編譯,因爲它不返回它需要返回的類型,但它仍然只是一個普通的方法。
它意味着任何你想要它的意思,儘管爲了清晰起見,它可能是最好的,如果它創建的東西 – harold
它取決於括號內的東西,你照顧削減:-) – Sebas
這是你的方法的名稱向我們展示。其含義是:http://www.dictionary.com/browse/create – David