首页 > 解决方案 > Java 到 Kotlin 的构造方法

问题描述

当我将服务的构造函数方法移动到 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>()
}

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

标签: javakotlincachingcoding-stylecaffeine

解决方案


您的 init 非常合适。

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


推荐阅读