我正在尝试使用Kotlin与TeamCity进行交互。
当您将项目转换为Kotlin(来自.xml)时,您将拥有一个名为Project.kt的文件,您可以在其中设置所有配置。
没有编辑我的看起来像这样:
object Project : Project(/* Some Function Literal with Receiver */)
这看起来像循环继承?我省略了进口产品,但肯定不会产生那么大的差别吗?是否可以根据文件中出现的位置以不同的方式解释名称?
我的想法就是这样解释对象签名:
答案 0 :(得分:9)
假设合格的班级other.Project
和my.Project
,您可以在不同的套餐中使用相同的名称定义两个不同的类。
由于my.Project
被定义为Singleton,因此您无法从中扩展,实际的基类为other.Project
。 Kotlin 非常聪明,可以区分。如果您尝试对类声明执行相同操作,则会获得循环继承。
你甚至可以尝试强制从Singleton强制扩展,但是你会有错误不能从Singleton继承。所以基本上只有在导入正确的类时才能正常工作。