honesome
@honesome (honesome)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

1Answer

Your answer might help someone💌