当前位置: 首页 > 知识库问答 >
问题:

当不“private”时,不能在Kotlin中返回字符串

微生德泽
2023-03-14

当我使用户名为公共时为什么会出错:

 class User{
            /*private*/ var userName: String = "Emily"

            fun getUserName(): String{
                return userName
            }
        }

        fun main(args: Array<String>){
            val User = User()
            print(User.getUserName())
        }

共有1个答案

陈季
2023-03-14

当您定义var username时,您实际上是在定义一个属性,而不仅仅是一个字段。除了该属性之外,还有一个隐式的getusername()setusername()方法。通过添加您自己的getusername(),您可以隐藏Kotlin自动为您创建的内容。

您可以安全地删除getUsername()并使您的字段非私有,它应该可以正常工作。编写代码的惯用方法如下所示:

class User {
    var userName: String = "Emily"
}

fun main(args: Array<String>){
    val user = User()    // Note changed val from User to user.
    print(user.userName) // Note, this really calls the getter
}
 类似资料:
  • 问题内容: 我有2张桌子- : 第二张桌子- : 我只需要选择未取消的预订(在此示例中仅为ID 3)。我可以轻松地选择带有简单条件的已取消,但由于未在此处取消工作,因此我在努力避免未取消。 问题答案: 要么: 第一个版本更直观,但是我认为第二个版本通常可以获得更好的性能(假设您在联接中使用的列上有索引)。 第二个版本有效,因为返回第一个表中所有行的一行。当条件成功,这些行会包括从第二表中的列,就像

  • 我正在制作一个应用程序,如果用户已经登录,我希望应用程序自动从文本文件登录。目前,在文本文件中,我有与数据库条目匹配的“alex|ppp”。以下方法首先调用 我已经仔细检查了user和Pass的值,它们是“alex”和“ppp”,这是预期的。下一个初始文件被调用,这是相关代码: 一旦我调用db.tryLogin()就会出现问题,它看起来像这样 我已经检查过了,dbPass从数据库返回的“ppp”与

  • 问题内容: 我打电话来创建一个文件夹,其中包含一组特定的生成数据。但是,即使尚未创建我指定的路径,也会引发该路径已存在的OSError。 例如,我打电话: 即使我在任何地方都没有测试目录或名为test的文件,也会导致此调用。 注意:我使用的实际路径名不是“ test”,而是更确定的东西,我确定它没有在任何地方命名。 请帮忙? 问题答案: 格雷格的答案是正确的,但还远远不够。 具有次错误条件,并且您

  • 以下endpoint以字符串形式返回用户名。 我如何构造它以返回一个json对象,该对象包含一个键,该键的值为该字符串(例如,{“user”:“joeuser”})?

  • 123 但是我想要像这样的整个字符串 编辑:添加了,但响应相同。

  • 问题内容: 我创建了一个Web服务,该服务返回。这必须能够返回工作正常的。但它也应该能够返回。知道如何使用来传送A 吗? 问题答案: JavaMail具有一个可用于此目的的: mime类型中的in决定它将字符串转换为字节时使用的编码方式。