我目前正在开发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相当于此?
答案 0 :(得分:2)
这是Java代码的等效Kotlin代码:
class SampleClass(var `var`: String? = null)
有几点需要注意:
class SampleClass
代码setVar()
表示它返回String
,但它实际上是void
。我假设您打算使用void
返回类型。var
不适合Kotlin,因为它是一个保留字。这就是为什么我们必须用反引号逃脱它。 (它在Java 10中也可能有点令人困惑,因为var
现在是一个保留类型名称。)这就是为什么这个单行代码与Java列表相同的原因。
var
放在开头,我们告诉Kotlin我们希望这也是属性。 Kotlin将为它创建一个吸气剂和固定器。String?
部分使此属性的类型为nullable String。var
将null
属性参数设为= null
Code
。从Java创建这个类时,它仍然会显示为两个构造函数。如果您正在使用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。