목록코틀린 (3)
쟈미로그
서론 Mockito는 static 메소드를 목킹할 수 없다 (+final, private ..) Kotlin+Spring 환경에서 개발하면서 알게된 것 중 하나가 'Mockito로는 static 메소드를 목킹할 수 없다'는 것이다. 이 사실을 깨달은 경위는, 코틀린에서 확장 함수를 목킹하고 싶은 상황이 와서 목킹하려하자 에러가 뜨는 것이었다. (코틀린 확장함수는 자바로 디컴파일 시 static final 혹은 final 메소드로 변환된다.) 이 목킹하려는 확장 함수가 내가 짠 코드면 모르겠는데.. Spring Data JPA가 기존 Optional을 반환하는 findById 대신, 코틀린을 위해 제공하는 확장 함수인 findByIdOrNull을 목킹하려다 일어난 일이었다. (아래와 같이 findByIdO..
05. 코틀린에서 조건문을 다루는 방법 1. if문 if-else문은 기본적으로 자바-코틀린 문법이 동일함. 하지만 다른점이 있는데, 자바에서 if-else는 Statement지만 코틀린에선 Expression임!!! Statement : 프로그램의 문장, 하나의 값으로 도출되지 않음 Expression : 하나의 값으로 도출되는 문장 그렇기 때문에 마치 자바의 삼항연산자처럼 아래같이 표현이 가능함. (그래서인지 코틀린에는 삼항연산자가 따로 없다) fun getPassOrFail(score: Int): String { return if (score >= 50) { "P" } else { "F" } } 2. when 자바의 switch문을 코틀린에선 when으로 표현할 수 있음. Expression이라서,..
새 프로젝트 언어가 코틀린으로 정해지면서 코틀린 공부의 필요성이 코앞으로 닥쳤다. 인프런 최태현 강사님의 자바 개발자를 위한 코틀린 입문 강의를 듣고 요약해보잣! 01강. 코틀린에서 변수를 다루는 방법 1. 변수 선언 키워드 - var, val 코틀린은 자바와 달리 변수 선언 시 무조건 선언 키워드 var, val를 써줘야함. 이 선언 키워드 역할은 수정 가능 여부를 명시하는 것임. var : variable. 가변 변수. val : value. 불변 변수. (자바의 final) 타입 선언 코틀린에선 컴파일러가 자동으로 타입을 추론해주기 떄문에 의무적으로 타입을 쓸 필욘없음. 원한다면 : 기호로 표현 가능. 초기값 지정 안한 경우엔 컴파일러가 타입 추론을 못하므로 타입을 명시해줘야 컴파일 에러가 안남. ..