我一直在使用C#很長一段時間,現在我需要在Java中做一些事情。Java-Do java有類似C#的結構自動構造函數
有沒有像C#中的結構自動構造函數的java?
我的意思是 在C#
是否有可能迫使Java來在聲明中使用默認的構造函數?
我一直在使用C#很長一段時間,現在我需要在Java中做一些事情。Java-Do java有類似C#的結構自動構造函數
有沒有像C#中的結構自動構造函數的java?
我的意思是 在C#
是否有可能迫使Java來在聲明中使用默認的構造函數?
否 - Java根本不支持自定義值類型,並且始終顯式調用構造函數。
但是,您對C#的理解是不正確的。來自原文:
// Automatic constructor was invoked
// This line is same as MyStruct mStruct = new MyStruct();
MyStruct mStruct;
這是不正確的。你可以寫向無mStruct.i
任何明確的初始化在這裏,但你不能從中讀取除非編譯器知道一切都已經賦值:
MyStruct x1;
Console.WriteLine(x1.i); // Error: CS0170: Use of possibly unassigned field 'i'
MyStruct x1 = new MyStruct();
Console.WriteLine(x1.i); // No error
Java不支持Struct關鍵字(請參閱:http://msdn.microsoft.com/en-us/library/ms228600(v=VS.90).aspx),因此您需要僅使用公共對象的類(並且沒有函數)。您始終需要初始化類。
不,您總是需要在Java中顯式調用構造函數。
因爲可能有多個構造函數,所以明確調用一個特定的構造函數可能會是一個好習慣。
什麼用調用該構造函數明確的問題? – Qnan 2012-07-28 14:06:37
C#不會自動調用結構上的默認構造函數。 – CodesInChaos 2012-07-28 14:25:31
「自動構造函數被調用」不是*會發生什麼。 C#*也*沒有這個「自動構造函數」。 – 2012-07-28 15:18:47