我在Java中很基礎,因爲我是全職C#開發人員,但我需要在Android中創建一些私人項目。Java初始化風格類似於C#
在C#中,我可以做這樣的事情:
public class Test
{
public string A {get;set;}
public OtherClass B {get;set;}
}
public OtherClass()
{
string Some {get;set;}
string Again {get;set;}
}
現在,當我想用類測試,我可以做這樣的代碼:
var test = new Test
{
A = "test",
B = new OtherClass
{
Some = "Some",
Again = "Again"
}
};
感謝這個在現在我已經初始化測試清晰的方式。
,當我想在Java中做到這一點我必須做出這樣的代碼:
public class Test
{
private string A;
public string GetA()
{
return A;
}
public void SetA(string a)
{
A = a;
}
privte OtherClass B;
public OtherClass GetB()
{
return B;
}
public void SetB(OtherClass b)
{
B = b;
}
}
public class OtherClass
{
private string Some;
public string GetSome()
{
return Some;
}
public void SetSome(string some)
{
Some = some;
}
privte string Again;
public string GetAgain()
{
return Again;
}
public void SetAgain(string again)
{
Again = again;
}
}
我知道的Java必須Seter和Geter到現場,我確定這個,但現在如果我想使用Test
在這樣的物體,像我用它在C#中,我必須這樣做:
OtherClass otherClass = new OtherClass();
otherClass.SetSome("Some");
otherClass.SetAnothier("Another");
Test test = new Test();
test.SetA("A")
test.SetB(otherClass);
IMO這不是很好的和明確的聲明。我知道,我可以添加構造函數,如:
public Test(string a, otherClass b)
{
A = a;
B = b;
}
和
public OtherClass(string some,string another)
{
Some = some;
Another = another;
}
而且使用它像:
Test test = new Test("Test",new OtherClass("some","Another"));
但是,當我有更復雜的類(例如用200場(是的我有))構造函數將很長,它很難閱讀它。
那麼我可以用Java以其他方式初始化Java中的類嗎?
感謝
它看起來就是我尋找的。那些雙大括號會嚇到我一點,因爲大括號可以使得發現bug更加糟糕,特別是在某些函數中初始化對象的時候:)但是這對我來說看起來很完美。它比我在帖子中顯示的方法花費更少的資源? – Aht
它需要更多的資源 - 像這樣創建的每個對象都有自己的類。 –
這實際上是濫用匿名內部類 - 被真正真正想讓Java看起來像C#的人深受歡迎。 –