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

问题描述 投票:0回答:2

我有一个已经转换为Kotlin的Java接口类。在转换时,它会在使用getter和setter时在其他文件上创建大量错误。

Java接口类:

public interface ValueFormElement extends BaseElement {


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

    String getName();

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


}

在转换时,它会删除getter并在其他类中使用getter。这是生成的Kotlin类

interface ValueFormElement : BaseElement {


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

    var name: String
    fun setValue(value: String)


}

如果有人有一种方法可以实现或干净利落地使用get和set而不影响其余的代码,请告诉我或指导我。

java android kotlin
2个回答
0
投票

使用var,将生成get / set方法以在Java中使用。但是对于val,只提供了一个get方法(因为val意味着只读)。您可以合并到两个vars以匹配Java实现:

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

0
投票

使用此Kotlin接口的Java代码仍会看到getter和setter,与之前相同,因此它们不会受到影响。只有Kotlin代码。如果你现在还没有准备好修复它们,我根本不打算将界面转换为Kotlin。

虽然可以写

fun getName(): String

在Kotlin界面中,它将使它比Java版本更少可用。也就是说,Kotlin不会让你写x.valuex.name = ...

© www.soinside.com 2019 - 2024. All rights reserved.