我是一名全职C#开发人员,对Java基础不够扎实。但是我需要在Android上做一些私人项目。
在C#中,我可以做出如下操作:
public class Test
{
public string A {get;set;}
public OtherClass B {get;set;}
}
public OtherClass ()
{
string Some {get;set;}
string Again {get;set;}
}
现在,当我想使用test类时,可以编写以下代码:
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必须有Setter和Getter来访问字段,我对此没有异议,但是现在如果我想像在C#中那样使用Test
对象,我必须做一些类似这样的事情:
OtherClass otherClass = new OtherClass();
otherClass.SetSome("Some");
otherClass.SetAnothier("Another");
Test test = new Test();
test.SetA("A")
test.SetB(otherClass);
我认为这并不是一个清晰易懂的声明。我知道可以添加类似以下构造函数:
public Test(string a, otherClass b)
{
A = a;
B = b;
}
and
public OtherClass(string some,string another)
{
Some = some;
Another = another;
}
然后像这样使用:
Test test = new Test("Test",new OtherClass("some","Another"));
但是当我有更复杂的类(例如带有200个字段(是的,我有那些))时,构造函数会变得非常长,并且很难阅读。
那么我能以其他方式在Java中初始化类吗?
谢谢