Java 到 Kotlin 构造方法

Java to Kotlin constructor method

当我将服务的构造函数方法移动到 Kotlin 代码时,我收到一条消息“从未使用过方法”。将以下方法转移到 Kotlin 服务的正确方法是什么?我认为可以使用 init 块来代替,但我不确定。

public CurrencyServiceImpl() {
    currenciesCache = Caffeine.newBuilder().maximumSize(100).expireAfterWrite(1, TimeUnit.DAYS).build();
}

现在对于 Kotlin,下面会抛出“函数“CurrencyServiceImpl”从未使用过”

fun CurrencyServiceImpl() {
    currenciesCache = Caffeine.newBuilder().maximumSize(100).expireAfterWrite(1, TimeUnit.DAYS)
            .build<String, String>()
}

所以我改成了下面的代码:

init {
    currenciesCache = Caffeine.newBuilder().maximumSize(100).expireAfterWrite(1, TimeUnit.DAYS)
            .build<String, String>()
}

但我不确定这是否被认为是“合适的”。

你的 init 非常合适。

请注意,您之前定义的 fun CurrencyServiceImpl() 不是构造函数而是成员函数,因此未被使用。 Kotlin 中的构造函数必须使用 cosntructor 关键字声明。