2013-03-31 36 views
0

我有一些類應該是Serializable,因此需要一個空的參數構造函數。 此外,我想爲所有類實現定製一些自定義的init()例程。如何爲空arg構造函數提供init方法?

到目前爲止,我在init()只是沒有參數構造函數。但是因爲我現在需要一個空序列化的無參數構造函數,所以我怎樣才能確保爲所有實現自動執行的方法?

例子:

abstract class Foo implements Serializable { 
    int id; 

    Foo() { 
     id = UUID.randomUUID(); 
    } 
} 

class Bar extends Foo { 
    Bar() {} 
    Bar(String param) { 
     //... 
    } 
} 

這是我曾經有過。對於隱式的任何實現總是調用Foo()構造函數。實施過程不必考慮任何UUID世代。

當我必須使Foo()Serialization的空構造函數時,我該如何達到相同的效果?

+0

你能詳細說明爲什麼你需要空的構造函數嗎? – Lokesh

+0

身體不一定是空的;只是構造函數參數列表必須是空的。 –

+0

可序列化的類不需要無參數構造函數.. –

回答

0

我有一些類應該是可序列化的,因此需要一個空的 參數構造函數。

這不是強制性的。如果一個類或其超類是可序列化的,那麼直到您將該類擴展到其他因爲構造函數鏈而需要的類爲止,在該類中定義無參數構造函數並不是強制性的。

相關問題