我在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#的人深受欢迎。 –