Kotlin中使用Dagger2 可能导致错误"Dagger does not support injection into private fields"

时间:2021-04-17 20:09:27

Kotlin 生成.java文件时属性默认为 private,给属性添加@JvmField声明可以转成 public

class User {
var name:String ? = null
val age: Int = 20
}

class User2 {
@JvmField
var name:String ? = null
val age: Int = 20
}
public final class User {
@org.jetbrains.annotations.Nullable()
private java.lang.String name;
private final int age = 20;

@org.jetbrains.annotations.Nullable()
public final java.lang.String getName() {
return null;
}

public final void setName(@org.jetbrains.annotations.Nullable()
java.lang.String p0) {
}

public final int getAge() {
return 0;
}

public User() {
super();
}
}
public final class User2 {    @org.jetbrains.annotations.Nullable()    public java.lang.String name;    private final int age = 20;        public final int getAge() {        return 0;    }        public User2() {        super();    }}


相关问题链接: https://discuss.kotlinlang.org/t/kotlin-dagger-injection-from-java/1696