Java中是否有C#风格的对象初始值设定项
像这个吗http://weblogs.asp.net/dwahlin/archive/2007/09/09/c-3-0-features-object-initializers.aspx
Person p = new Person()
{
FirstName = "John",
LastName = "Doe",
Address = new Address()
{
Street = "1234 St.",
City = "Phoenix"
}
};
# 1 楼答案
在Java中,可以使用双括号初始化块执行类似的操作:
然而,这只是在匿名内部类中使用初始化块,因此效率低于以正常方式构造对象
# 2 楼答案
事实上,有
甚至:
这被称为双支架初始化。然而,我会避免使用这个习惯用法,因为它有一些意想不到的副作用,例如,这个语法实际上创建了一个匿名的内部类
Person$1
和Address$
另见