JavaのOptionalとKotlinのNullableとの互換について
質問内容
JavaのOptionalとKotlinのNullableとの変換方法を教えていただきたいです。
jdkのバージョンは11、Kotlinは1.40を使用しております。
具体例
例えば、JavaとKotlinの両方を使用している。
プロジェクトにて下記の2つコードがあるとします。
FooRepo.java
@Repository
public interface FooRepo extends JpaRepository<Foo, Long>, SpecificationExecutor<Foo> {
}
FooUse.kt
class FooUse(
val fooRepo: FooRepo
) {
fun getFoo(id: Long): Optional<Foo> =
fooRepo.findOne(Specification.where{ r, _, cb -> cb.equal(r.get<Foo>("id"), id) }
}
この時、メソッドgetFooの戻り値の型をFoo?というようにKotlinにおけるNullableの型に変換するには
どのような方法がありますでしょうか?
変換したい理由は、
val foo = Foo?.foo ?: "foo"
のようにNullish ChainがOptionalより簡単に記載できると思っているからです。
0