Java中是否提供C#样式对象初始值设定项 [英] Are C# style object initializers available in Java
本文介绍了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"
}
};
推荐答案
实际上,有!
Person p = new Person()
{{
setFirstName("John");
setLastName("Doe");
setAddress(new Address()
{{
setStreet("1234 St.");
setCity("Phoenix");
}});
}};
甚至:
Person p = new Person()
{{
firstName = "John";
lastName = "Doe";
address = new Address()
{{
street = "1234 St.";
city = "Phoenix";
}});
}};
这称为双括号初始化。但是,我会避免这种习惯用法,因为它有一些意想不到的副作用,例如:这个语法实际上创建了一个匿名内部类 Person $ 1
和 Address $
。
This is called double brace initialization. However I would avoid this idiom as it has some unexpected side-effects, e.g. this syntax actually creates an anonymous inner class Person$1
and Address$
.
- What is Double Brace initialization in Java?
- Double Brace Initialization
这篇关于Java中是否提供C#样式对象初始值设定项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文