我有一个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干净地实现或完成它而又不影响其余代码,请向我展示或指导我。
答案 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.value
或x.name = ...
。