Java to 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,String>()
}

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

解决方法

您的初始化非常合适。

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