这个groovy语法如何转换成kotlin?

我在Kotlin创建了一个简单的Greeting任务。

就像Gradle 文档中的一样 。

现在我添加一个简单的测试,看起来像这个在groovy:

class GreetingTaskTest { @Test public void canAddTaskToProject() { Project project = ProjectBuilder.builder().build() def task = project.task('greeting', type: GreetingTask) assertTrue(task instanceof GreetingTask) } } 

我把这个翻译成了Kotlin,除了这一行中的一个单词:

 def task = project.task('greeting', type: GreetingTask) 

有问题的位是第二个参数。 键入:GreetingTask

它究竟代表什么,它如何转化为科特林?

看看文档 。 task方法需要一个String和一个MapgreetingStringType的一个实例:GreetingTask是一个被转换为Map实例的命名参数。 所以你应该通过一个Map作为第二个参数。 不幸的是,不知道如何在kotlin中声明Map 。 这种方法可能会有所帮助。

Thx到蛋白石领导我的解决方案。

除了他在这里的答案是kotlin版本的测试:

 class GreetingTaskTest { @Test public fun canAddTaskToProject() { val project = ProjectBuilder.builder().build() val task = project.task(mapOf("type" to GreetingTask::class.java), "greeting") assertTrue(task is GreetingTask) } }