在 kotlin 中创建匿名实例 class

Create instance of anonymous class in kotlin

在 C# 中我可以:

var a = new { prop42 = "42" };
Console.WriteLine("a.prop42 = " + a.prop42);

或者做一些其他的事情,比如序列化匿名 class 实例(用于浏览器中的 js)。未使用接口或抽象 classes,完全匿名 class 实例。

在 Kotlin 中可以做同样的事情吗?

是的,您可以在 Kotlin 中执行等效操作:

val a = object { val prop42 = "42" }
println("a.prop42 = ${a.prop42}")

描述了in the language reference.  See also

不过,这通常不是一个好主意。因为该类型没有名称,所以不能在 public 声明中使用它,例如该类型的 class 或 top-level 属性;你也不能创建它的列表或地图。 (通常,您只能引用其命名的 superclass — 在本例中为 Any,因为您没有指定。)所以它的使用有点受限。 (缺少名称也使代码更难理解。)