java - 如何打印getter方法的值

标签 java kotlin kotlin-android-extensions kotlin-extension

我在 Eclipse 中创建了以下示例。我正在关注一个教程,其中提到我可以使用 print(s1.captain) 来打印队长姓名。本教程想要展示 kotlin 自动生成 settersgetters

在我的代码中,打印语句不打印任何内容

主要:

fun main(args : Array<String>) {
    var s1 = Stronghold1("JJ",7)
    print(s1.captain)
}

据点:

abstract class Stronghold(name: String, location: String)

据点1

class Stronghold1(captain: String, capacity: Int) : Stronghold("GerMachine", "Bonn")

最佳答案

在 Kotlin 中,构造函数参数仅在标记为 valvar 时才会转换为属性。在您的例子中,captaincapacitynamelocation 只是构造函数的参数。它们没有被制成属性(property)。

要获取 captaincapacity 作为属性,请将 val 添加到它们:

class Stronghold1(val captain: String, val capacity: Int) : Stronghold("GerMachine", "Bonn")
//                ^^^                  ^^^
//                add                  add   

您可能也想对 Stronghold 做同样的事情:

abstract class Stronghold(val name: String, val location: String)
//                        ^^^               ^^^
//                        add               add

关于java - 如何打印getter方法的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52353528/

相关文章:

java - columnDefinition = "TEXT"适用于所有类型的数据库

java - 如何创建 "modern looking"Java 桌面应用程序?

android - Android上的AWS Cognito SDK,参数cognitoDevice Null导致登录崩溃

android - 如何通过viewModels获取viewModel? ( fragment -ktx)

java - 异常管理

java - android okohttp 将数据插入 php 不起作用

java - 如何在 Android Activity 上使用 Kotlin 扩展函数正确地进行空值检查

java - 如何在 Kotlin 编写的接口(interface)中使用默认方法的 Java 8 功能

android - Retrofit2:将post参数添加到拦截器中

java - 如何更改 Kotlin 中 RecyclerView 中每个 Even 值元素的颜色?