在 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
,因为您没有指定。)所以它的使用有点受限。 (缺少名称也使代码更难理解。)
在 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
,因为您没有指定。)所以它的使用有点受限。 (缺少名称也使代码更难理解。)