코틀린을 조금 더 코틀린스럽게 사용하기 위해 자료형 변환을 정리하고자 한다.인터페이스를 추상화하여 사용했을 때 코틀린의 as, as? 를 통해 간편하게 자료형 확인과 변환이 가능해서 편리했다. 자바와 비교해 보며 어떠한 차이가 있는지 학습했다.asis used fo type castsspecifies an alias for an importKotlin에서 as는 타입 캐스팅으로 사용할 수 있다.Unsafe cast operatorval x: String = y as StringIf the cast isn’t possible, the compiler throws an exception.as로 타입 캐스트를 하는데 불가능한 타입이면 예외가 발생하는 문제가 생긴다.또한, y가 null 인 경우에도 Except..
코틀린을 공부하면서 자바와 의존성 주입 차이가 약간 다른 거 같아서, 이번 글을 통해 제대로 정리하고자 합니다.코틀린이 자바보다 간결하게 처리가 가능하다고 말로만 들었는데, 의존성 주입부터 간결해지는 거 같다..의존성 주입 방법은 제일 많이 사용하는 생성자 주입을 기준으로만 작성하겠습니다. (가장 흔히 쓰고, 안전한 방식)Java 생성자 주입@RestController@RequiredArgsConstructorpublic class HelloController { private final HelloService helloService;}자바에서는 @RequiredArgsConstructor와 private final 빈 클래스 선언을 통해 간단하게 생성자 주입을 처리합니다. @RestControll..
코틀린에서는 자바 + 스프링에서 지원하는 @slf4j을 사용할 수 없다. 그래서 코틀린에서 로깅을 찍기 위해서 로깅 관련 의존성을 추가하여 로그를 찍는 것이 가장 간편한 방법이다.의존성 추가implementation("io.github.oshai:kotlin-logging-jvm:7.0.0") KotlinLogging.logger 사용private val logger = KotlinLogging.logger {}fun main() { logger.trace { "This is trace log" } logger.debug { "This is debug log" } logger.info { "This is info log" } logger.warn { "This is warn log"..
Kotlin ClassAll classes in Kotlin have a common superclass, AnyAny has three methods: equlas(), hashCode(), toString()By default, Kotlin classes are final - they can’t be inherited코틀린 클래스는 기본적으로 Any를 상속하고 있다. 또한, 기본적으로 final로 선언되어 있어 상속할 수 없다. 상속 가능한 클래스로 만들기 위해서는 open 키워드를 명시해야 한다.open class Base(pp1: Int)class Derived(pp1: Int): Base(pp1) If the derived class has no primary constructor, then e..