Chr*_*son 26 c# java initialization
在C#中可以写:
MyClass obj = new MyClass()
{
field1 = "hello",
field2 = "world",
field3 = new MyOtherClass()
{
etc....
}
}
Run Code Online (Sandbox Code Playgroud)
我可以看到数组初始化可以用类似的方式完成,但是类似于上面的东西也可以在Java中完成,如果是这样,那么语法是什么?
Jor*_*dão 38
Java中不存在该初始化语法.
类似的方法是使用双括号初始化,您可以使用初始化块创建一个匿名内部子类:
MyClass obj = new MyClass() {{
// in Java these would be more like this: setFieldX(value);
field1 = "hello";
field2 = "world";
field3 = new MyOtherClass() ...
}};
Run Code Online (Sandbox Code Playgroud)
但请注意,您实际上是在创建子类.
另一种方法是为其创建构建器MyClass,并具有以下代码:
MyClass obj = new MyClassBuilder().
withField1("hello").
withField2("world").
withField3(new MyOtherClass()).
build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8937 次 |
| 最近记录: |