Unit
타입에 반환하는 함수의 반환값을 확인하지 않으면 컴파일러 워닝이 발생함-Xfatal-warnings
옵션이 활성화 되면 컴파일도 실패됨- http4s-armeria/ArmeriaHttp4sHandler.scala at 39e3ae4847e071a80da3a8250ff6e405e58d55c6 · http4s/http4s-armeria · GitHub
Function<? super HttpService, ? HttpService>
형태의 일 경우에 Scala Function에서 바로 형변환이 되지 않기 때문에delegate => new MyHttpService(delegate)
를 해줘야 함- Decorator를 편하게 쓸수 있게 Scala Function용으로 하나 제공해주면 좋을것 같음
- sttp/AbstractArmeriaBackend.scala at d556bfacf3ed587c6622d6a362aaa1cd81911030 · softwaremill/sttp · GitHub
- http4s-armeria/ArmeriaClientBuilder.scala at cc1ee774bedfa38387ce3eadfb002b719fbdcb6a · http4s/http4s-armeria · GitHub
- Overloaded된 함수에 varargs가 있으면 잘 못찾음
ClientFactory.closeAsync()
의 반환타입이 wildcard라서 Scala에서 callback을 넣을때 타입파라메터를 넣기 어려움- Duration은 Scala에서 사용하는 scala.concurrent.Duration과 달라서
FiniteDuration
을 하나 넣어주면 Scala와의 interop에 좋은것 같음 - http4s-armeria/ArmeriaServerBuilder.scala at cc1ee774bedfa38387ce3eadfb002b719fbdcb6a · http4s/http4s-armeria · GitHub
- ClientFactoryOptions에 대한 Function타입에 대해서 Scala lambda식이 잘 안되었던것 같음 (2.11에서만)
- StreamMessage.of()를 사용할때 varargs에 array타입을 넣으면 의도지 않게 Array를 publish하는 타입이 나옴
val ints = Array(1, 2, 3)
val streamOfArrayInt: StreamMessage[Array[Int]] = StreamMessage.of(ints)
val streamOfInt: StreamMessage[Int] = StreamMessage.of(ints: _*) // 명시적으로 varargs로 쓴다로 말해줘야함
- JUnit5의
@RegisterExtension
이 제대로 동작하지 않음 ㅡㅡ;