我已經重構了以下對象初始化:Java的雙支柱初始化
Req r = new Req();
r.set_f1("A");
r.set_f2(123);
r.set_f3(123.456);
分爲:
Req r = new Req() {{
set_f1("A");
set_f2(123);
set_f3(123.456)
}};
第二個示例引發以下的Eclipse警告:
的序列化類呢未聲明類型爲long的靜態最終serialVersionUID字段
我認爲這些代碼示例應該是等效的 - 有什麼區別?
這兩個絕對不是等價的,它們是非常不同的。所有關於雙括號初始化的問題都充滿了。 – skaffman 2012-02-19 14:16:28
@duffymo你對此絕對錯誤。 – Irfy 2012-02-19 14:17:31
爲什麼你會決定以這種方式「重構」你原來的例子?! Double brace init並不是一個廣泛使用的練習!如何使Req的構造函數接受該數據: Req req = new Req(x,y,z); – 2012-02-19 14:20:39