[전략 패턴 - 예제 2] 코틀린으로 연습하는 중에 변환이 되지 않아 문의 드립니다.
// ContextV1Test.java
@Test
void strategyV3() {
ContextV1 context1 = new ContextV1(new Strategy() {
@Override
public void call() {
log.info("비즈니스 로직1 실행");
}
});
context1.execute();
ContextV1 context2 = new ContextV1(new Strategy() {
@Override
public void call() {
log.info("비즈니스 로직2 실행");
}
});
context2.execute();
}
@Test
void strategyV4() {
ContextV1 context1 = new ContextV1(() -> log.info("비즈니스 로직1 실행"));
context1.execute();
ContextV1 context2 = new ContextV1(() -> log.info("비즈니스 로직2 실행"));
context2.execute();
}// ContextV1Test
@Test
fun strategyV3() {
val context1 = ContextV1(object : Strategy {
override fun call() {
log.info("비즈니스 로직1 실행")
}
})
context1.execute()
val context2 = ContextV1(object : Strategy {
override fun call() {
log.info("비즈니스 로직2 실행")
}
})
context2.execute()
}
@Test
fun strategyV4() {
val context1 = ContextV1({ log.info("비즈니스 로직1 실행") })
context1.execute()
val context2 = ContextV1({ log.info("비즈니스 로직2 실행") })
context2.execute()
}interface 에 메서드가 하나만 있는 경우 람다를 활용할 수 있다. java 코드를 코틀린으로 변환하면서 v3 는 정상적으로 변환에 성공했습니다.하지만 v4 는 정상적으로 되지 않습니다.코틀린에 아직 익숙하지 않다보니 생긴 문제인거 같기도 한데..혹시 강의 범위를 벗어나긴 하지만 도움을 주실 수 있을까요?