Kotlin相当于类属性,构造函数,空参数构造函数,getter和setter

时间:2018-04-20 03:01:47

标签: kotlin

我目前正在开发kotlin,到现在为止,我似乎对kotlin的班级结构感到困惑。

这是java中的代码

 //properties
    private String var;

    //constructor
    public SampleClass(String var){
        this.var = var;
    }

    public SampleClass(){
    }

    //getters and setters
    public String getVar(){
        return this.var;
    }
    public String setVar(String var){
        this.var = var;
    }

什么是kotlin相当于此?

2 个答案:

答案 0 :(得分:2)

这是Java代码的等效Kotlin代码:

class SampleClass(var `var`: String? = null)

有几点需要注意:

  1. 上面的Java代码段省略了包装class SampleClass代码
  2. 您的setVar()表示它返回String,但它实际上是void。我假设您打算使用void返回类型。
  3. 您的财产var不适合Kotlin,因为它是一个保留字。这就是为什么我们必须用反引号逃脱它。 (它在Java 10中也可能有点令人困惑,因为var现在是一个保留类型名称。)
  4. 这就是为什么这个单行代码与Java列表相同的原因。

    1. constructor部分 - 括号之间的部分 - 可用于接受构造函数参数,但是通过将Kotlin关键字var放在开头,我们告诉Kotlin我们希望这也是属性。 Kotlin将为它创建一个吸气剂和固定器。
    2. String?部分使此属性的类型为nullable String。
    3. 我们不是创建两个不同的构造函数,而是使用varnull属性参数设为= null Code。从Java创建这个类时,它仍然会显示为两个构造函数。
    4. 如果您正在使用IntelliJ或Android Studio,您可以告诉它将任何Java类转换为Kotlin。只需打开课程文件,然后转到Convert Java file to Kotlin file菜单,然后选择public class Runner { public static void main(String[] args) throws Exception { String className = args[0]; String methodName = args[1]; Class.forName(className).getDeclaredMethod(methodName).invoke(null); } } 。它不一定会产生非常惯用的代码(例如,它可能会创建两个构造函数而不是使用构造函数参数的默认值),但它会让你开始。

答案 1 :(得分:0)

对于"什么是Kotlin等同于Java"中的某些代码,有一个通用的答案:复制Java代码并将其粘贴到IDEA / Android Studio中的Kotlin文件中。或convert the entire file

在网络上,您可以使用https://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Java%20to%20Kotlin%20conversion/Task.kt