JavaのクラスをKotlinで継承し,特定のメソッドだけOverrideしたい
あるJavaのクラスをKotlinで継承し,他のメソッドに影響を与えないように1つのメソッドだけOverrideしたいのですがエラーが出て困っています.
元のJavaのクラスではprivate String
と表現されているフィールドが,継承したKotlinのクラスではfinal val
と解釈されており,メソッド内でset
が出来ないと言った状態です.
Java:
public class J {
private String a;
public String getA() {
return a;
}
void m() {
a = "hello";
}
void m2() {
System.out.println(a);
}
}
Kotlin:
open class K(): J() {
override fun m() {
a = "helloK" // "Val cannot be reassigned"
}
}