【发布时间】:2020-09-22 07:14:17
【问题描述】:
我是 kotlin 的新手,刚开始学习类和方法
但在下面的代码中我不能调用makeReddit() 方法:
class Site( address: String, foundationYear: Int) {
var address: String = address
var foundationYear: Int = foundationYear
fun makeReddit(address: String , foundationYear: Int) {
this.address = "reddit.com"
this.foundationYear = 2005
}
}
fun main() {
val site : Site = makeReddit()
}
我得到了这个错误:
Kotlin: Unresolved reference: makeReddit
【问题讨论】:
-
你必须先初始化
Site,然后调用site.makeReddit("reddit.com", 2005)这样的方法,但看起来那个方法只是设置变量,没有做任何其他事情,所以你可以只使用data class Site(address: String, foundationYear: Int)并通过构造函数进行初始化:val site = Site("reddit.com", 2005)。取决于您要对该网站和年份做什么。 -
我强烈建议您阅读一些 Kotlin 教程(甚至可能是 java/oop 教程)。您可以从这些tutorials 开始,首先您需要掌握有关 kotlin/oop 工作原理的概念。否则你会在 StackOverflow 上问很多关于为什么你的代码不能编译的问题。
-
这是 JetBrains Academy Kotlin Course 上的一个任务,任务只是说有这个类:
class Site(val address: String, val foundationYear: Int)实现makeReddit()函数,该函数返回一个带有 reddit.com 地址和基金会的站点2005 年。 -
您的
makeReddit()方法目前没有返回任何内容...您必须声明它fun makeReddit(address: String , foundationYear: Int) : Site { ... }并在正文中真正返回Site... -
“JetBrains Academy Kotlin 课程”可能对您现在来说太高级了。首先你需要了解什么是
class,什么是function,以及它能做什么。例如,在您的情况下,任务是添加一个应该 返回 的函数,但您没有返回任何内容,这可能表明您不熟悉 return 概念。