Kotlin:“可见性”修改器更改匿名对象的类型

时间:2018-10-19 12:36:00

标签: kotlin extension-methods class-visibility

在下面的工作代码中删除private的{​​{1}}修饰符(第4行)将破坏该代码。原因是myScope的类型不断变化。可见性是否设置为myScope,类型为:private。如果没有anonymous object : Scope,类型将切换为private。如何解决此问题?

Scope

以下是Android Studio中的两个版本: enter image description here

1 个答案:

答案 0 :(得分:4)

此行为是设计使然。参见documentation

  

请注意,匿名对象只能在本地和私有声明中用作类型。如果您将匿名对象用作公共函数的返回类型或公共属性的类型,则该函数或属性的实际类型将是匿名对象的声明的超类型;如果未声明任何超类型,则为Any 。添加到匿名对象中的成员将不可访问。

相关问题