2025 03 06
2025-03-05
Scala inner class
class Outer {
case class Inner(x: Int)
}
- Scala의 inner case class는 외부 Outer class 인스턴스에 종속되는 path-dependent type 임
class Outer {
case class Inner(x: Int)
}
val out1 = new Outer
val out2 = new Outer
var out1inner = out1.Inner(1)
val out2inner = out2.Inner(2)
println(out1)
println(out2)
println(out1inner)
println(out2inner)
out1inner = out2inner // 에러. 이렇게 대입 못함
Scala inner case class를 반환할 때 발생할 수 있는 문제
- [Layer 구조]
- Controller
- WebService
- Service
- 각각이 DI를 기본적으로 하게 되면, 파라미터는 클래스 내부에서만 사용한 매개변수로 처리되어 외부 접근 X
- Controller에서 X를 반환하게 하려면
WebService @Inject()(val service: Service) 와 같이 val로 public하게 해당 인스턴스 접근을 열어주거나
- X 자체를 Service 밖으로 빼내기