从 Kotlin 访问 Java 个 bean 属性
Accessing Java bean properties from Kotlin
我有 wsimport-ed Java classes 与标准 bean 约定:
public class Request {
protected String vin;
public String getVin() {
return vin;
}
public void setVin(String value) {
this.vin = value;
}
}
我希望使用漂亮的 属性 语法在 Kotlin 中使用这个 class:
override fun search(request: Request): Response {
log.info("search(vin={})", request.vin);
...
但此代码无法编译:
Error:(59, 64) Kotlin: Cannot access 'vin': it is 'protected/*protected and package*/' in 'SmvSearchRequest'
request.getVin()
当然可以,但是看起来并不比 Java 好。有什么方法可以将那些 classes 视为 属性 持有者吗?
这是 M13 之前的缺失,现在已在 M13 中修复,参见 Youtrack
我有 wsimport-ed Java classes 与标准 bean 约定:
public class Request {
protected String vin;
public String getVin() {
return vin;
}
public void setVin(String value) {
this.vin = value;
}
}
我希望使用漂亮的 属性 语法在 Kotlin 中使用这个 class:
override fun search(request: Request): Response {
log.info("search(vin={})", request.vin);
...
但此代码无法编译:
Error:(59, 64) Kotlin: Cannot access 'vin': it is 'protected/*protected and package*/' in 'SmvSearchRequest'
request.getVin()
当然可以,但是看起来并不比 Java 好。有什么方法可以将那些 classes 视为 属性 持有者吗?
这是 M13 之前的缺失,现在已在 M13 中修复,参见 Youtrack