从Java生成Kotlin接口类会产生错误

时间:2019-04-29 16:30:10

标签: java android kotlin

我有一个Java接口类,该类已转换为Kotlin。转换时,使用getter和setter方法会在其他文件上产生很多错误。

Java接口类:

public interface ValueFormElement extends BaseElement {


    Pair<Boolean, Hashtable<String,String>> getValue();

    String getName();

    void setName(String name);
    void setValue(String value);


}

在转换时,它将删除吸气剂,并正在其他类中使用吸气剂。这是生成的Kotlin类

interface ValueFormElement : BaseElement {


    val value: Pair<Boolean, Hashtable<String, String>>

    var name: String
    fun setValue(value: String)


}

如果任何人都可以使用get和set干净地实现或完成它而又不影响其余代码,请向我展示或指导我。

2 个答案:

答案 0 :(得分:0)

使用var,将同时生成一个get / set方法以用于Java。但是,对于val,仅提供get方法(因为val表示只读)。您可以将其合并为两个var来匹配Java实现:

interface ValueFormElement : BaseElement {
  var value: Pair<Boolean, Hashtable<String, String>>
  var name: String
}

答案 1 :(得分:0)

使用此Kotlin界面的Java代码仍然会像以前一样看到getter和setter,因此它们不会受到影响。只有Kotlin代码会。而且,如果您现在不准备修复它们,那么我根本就不会将界面转换为Kotlin。

虽然可以写

fun getName(): String

等在Kotlin界面中,它将使它比Java版本的可用性 更少。也就是说,Kotlin不允许您写x.valuex.name = ...