gpt4 book ai didi

c# - 可以在 Java 中使用 C# 样式的对象初始化吗?

转载 作者:IT老高 更新时间:2023-10-28 21:18:40 24 4
gpt4 key购买 nike

在 C# 中可以这样写:

MyClass obj = new MyClass()
{
field1 = "hello",
field2 = "world",
field3 = new MyOtherClass()
{
etc....
}
}

我可以看到数组初始化可以用类似的方式完成,但类似上面的事情也可以在 Java 中完成,如果可以,语法是什么?

最佳答案

Java 中不存在这种初始化语法

类似的方法是使用双括号初始化,您可以在其中创建一个带有初始化 block 的匿名内部子类:

MyClass obj = new MyClass() {{
// in Java these would be more like this: setFieldX(value);
field1 = "hello";
field2 = "world";
field3 = new MyOtherClass() ...
}};

请注意,您实际上是在创建一个子类

另一种方法是为 MyClass 创建一个构建器,并拥有如下代码:

MyClass obj = new MyClassBuilder().
withField1("hello").
withField2("world").
withField3(new MyOtherClass()).
build();

关于c# - 可以在 Java 中使用 C# 样式的对象初始化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668156/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com