본문 바로가기

kotlin21

[Kotlin] list.groupBy data class Notice(val no: Long, val name: String) data class File(val no: Long, val name: String, val noticeNo: Long) data class NoticeWithFiles(val no: Long, val name: String, val files: List) val notices = listOf(Notice(1L, "1"), Notice(2L, "2"), Notice(3L, "3")) val files = listOf(File(1L, "1", noticeNo = 1), File(2L, "2", noticeNo = 1), File(3L, "3", noticeNo = 1), File(4L, "4", noticeNo = 2.. 2019. 10. 17.
[intellij][kotlin] type hint java에서는 변수 선언 시 변수의 타입을 반드시 명시해줘야 했다. 하지만 kotlin은 컴파일러가 타입 추론을 해주기때문에 val user = getUser(no) 와 같은 코드에서는 변수의 타입을 굳이 명시해주지 않아도 된다. 타입을 명시해주지 않으니 getUser의 리턴 타입이 뭔지 한 번에 알 수 없는 불편함이 있었다. Editor > General > Appearance Show parameter name hints > Configure Language : Kotlin Show local variable type hints 체크 OK 위와 같이 user 타입이 뭔지 알려준다. + Intellij 2021.1 ver Editor > Inlay Hints > Kotlin Types > Local v.. 2019. 9. 25.
[Kotlin] If 문 Type mismatch null이 가능한 변수인 경우 if문 안에 조건문이 true, false, null 3가지가 올 수 있기 때문에 위와 같이 status 만 적으면 Type mismatch 에러가 난다. 이를 해결하려면 위와 같이 조건문에 true라고 명시적으로 적어주면 된다. 2019. 3. 25.
[Kotlin] Class<T>에 List<Int> 넣기 fun getTest(clazz: Class): T? { // ...}Colored by Color Scriptercs clazz: Class에 들어갈 파라미터 값으로 List::class.java를 넣는다면 Only classes are allowed on the left hand side of a class literal 라는 에러가 뜬다.이 때, List::class.java 대신 Array::class.java를 넣는다. 그리고 응답값에 .toList() 함수를 써서 결과값을 List로 만든다. getTest(Array::class.java).toList()cs 참고 : https://stackoverflow.com/questions/37016058/getting-class-of-list-with.. 2019. 3. 15.
[Kotlin][Mockito] IllegalStateException 에러 참고 원문 : Befriending Kotlin and Mockito Test Code @MockBean lateinit var memberService: MemberService @Test fun Test() { // .... Mockito.`when`(memberService.getMemberId(any(MemberRequest::class.java))) .thenReturn(0) } MemberRequest를 파라미터로 하고 memberId(Int 형)를 반환하는 getMemberId 함수를 테스트해보았다. memberService.getMemberId(any(MemberRequest::class.java)) 부분에서 에러. Error java.lang.IllegalStateException: an.. 2019. 3. 5.
[spock] Kotlin테스트 ReadOnlyPropertyException error @SpringBootTestclass MemberSpeckTest extends Specification { @Autowired MemberService memberService def "getProfileByMemberId() Test"() { given: def profileService = Mock(ProfileService.class) profileService.getProfileByMemberId(0) >> new ProfileResponse(name: "햄과함께") // error // ... }}Colored by Color Scriptercs 위와 같이 groovy 언어로 테스트 코드를 짰다. data class ProfileResponse( val name: String = "", val.. 2019. 3. 5.