Java中是否有对象创建表达式,类似于C#中的对象创建表达式?

Sla*_*avo 8 c# java constructor object

在C#中,我可以创建我编写的每个自定义类的实例,并为其成员传递值,如下所示:

public class MyClass
{
    public int number;
    public string text;
}

var newInstance = new MyClass { number = 1, text = "some text" };
Run Code Online (Sandbox Code Playgroud)

这种创建对象的方式称为对象创建表达式.有没有办法在Java中做同样的事情?我想传递一个类的任意公共成员的值.

Jon*_*eet 10

不,没有什么直接相似的.你最接近Java(没有编写构建器类等)是使用匿名内部类和初始化程序块,这是可怕但工作:

MyClass foo = new MyClass()
{{
    number = 1;
    text = "some text";
}};
Run Code Online (Sandbox Code Playgroud)

注意双括号...一个用于表示"这是匿名内部类的内容",另一个用于指示初始化块.我个人不推荐这种风格.