Kotiln
-
Kotlin - Reflection 과 생성자Kotiln 2021. 8. 4. 15:56
Reflection 을 이용하여 인스턴스를 생성하는 방법을 알아봅시다. 간단한 Person data class 를 생성했습니다. data class Person( var name: String, var age: Number = 20 ) age 프로퍼티에 기본 값으로 20 을 주었습니다. println("생성자 조회") println(Person::class.constructors) 생성자 조회 [fun (kotlin.String, kotlin.Number): chung.study.Person] 먼저 생성자를 조회해보겠습니다. Person 클래스를 생성한 것 과 같이 파라미터가 2개인 생성자가 조회됐습니다. 생성자는 KFunction 인터페이스이며 KCallable 인터페이스를 상속받고 있습니다. KCal..
-
Kotlin - jackson 을 이용하여 객체를 json 으로 변환할 때 주의점Kotiln 2021. 3. 24. 20:19
import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.module.kotlin.KotlinModule fun main(args: Array) { val testData = TestData("name", "code", false) println(testData) val objectMapper = ObjectMapper().registerModule(KotlinModule()) val res = objectMapper.writeValueAsString(testData) println(res) val data = objectMapper.readValue(res, TestData::class.java) println(dat..
-
코틀린과 삼항 연산자Kotiln 2021. 3. 19. 09:31
결론부터 말하자면 코틀린에는 삼항 연산자가 존재하지 않습니다. 그 대신 if - else 로 대체하거나 when 을 사용하여 표현할 수 있습니다. val a = if(b) b else c 위 처럼 변수에 값을 넣는 방법으로도 사용할 수 있습니다. 왜 삼항연산자가 없는 가를 말하려면 코틀린의 특성을 이야기해야 합니다. 코틀린에서 if 는 문(expression이 아닌 식(statement) 입니다. 식은 값을 만들어 내며 다른 식의 하위 요소로 계산에 참여할 수 있습니다. 따라서 위의 코드 처럼 변수에 값을 넣는 방식으로 사용할 수 있는 것입니다. 그렇기 때문에 삼항연산자와 if 의 역할이 중복되기 때문에 코틀린에서는 빠진 것이라고 추측할 수 있습니다. 코틀린 공식 문서(https://kotlinlang...
-
kotlin gradle 프로젝트에 ktlint 적용하기Kotiln 2020. 11. 7. 22:15
ktlint 적용 ktlint 에서 권장하는대로 Gradle 플러그인을 사용하여 적용하겠습니다. Kotlinter Gradle 을 사용합니다. build.gradle.kts 에 플러그인을 추가합니다. plugins{ id("org.jmailen.kotlinter") version "3.2.0" }설정 Kotlinter Gradle 플러그인은 따로 린트 설정을 할 필요가 없습니다. 기본적으로 아래와 같은 설정이 적용됩니다. ignoreFailures = false indentSize = 4 reporters = arrayOf("checkstyle", "plain") experimentalRules = false disabledRules = emptyArray()설정을 변경하고 싶다면 .editorconfi..
-
[Kotlin] 고차 함수Kotiln 2020. 6. 30. 14:53
고차 함수 정의 고차 함수 는 다른 함수를 인자로 받거나 함수를 반환하는 함수이다. 표준 라이브러리 함수인 filter 는 술어 함수를 인자로 받으므로 고차 함수이다. 함수 타입 함수 타입을 정의하려면 함수 파라미터의 타입을 괄호 안에 넣고 그 뒤에 화살표 -> 를 추가한 다음, 함수의 반환 타입을 지정한다. (Int, String) -> Unit 함수 타입에서도 반환 타입을 nullable로 지정할 수 있다. val canReturnNull: (Int) -> Int? = {null} 함수 타입 전체가 null이 되게 선언할 수도 있다. val funOrNull: ((Int, Int) -> Int)? = null 함수 타입에서 파라미터 이름을 지정할 수도 있다. fun performRequest(url:..
-
코틀린 - 함수의 정의와 호출Kotiln 2019. 7. 24. 11:23
코틀린에서 컬렉션 만들기 setOf, arrayListOf, hashMapOf 등의 함수를 이용하여 컬렉션을 생성할 수 있다. 코틀린은 자신만의 컬렉션을 기능을 제공하지 않는다. 기존 자바의 컬렉션을 활용할 수 있다. 함수를 호출하기 쉽게 만들기 이름 붙인 인자 함수 호출 부분의 가독성을 늘리기 위해 인자에 이름을 붙일 수 있다. joinToString(collection, separator = " ", prefix = " ", postfix = ".")호출 시 인자 중 어느 하나라도 이름을 명시하고 나면 혼동을 막기 위해 그 뒤에 오는 모든 인자는 이름을 꼭 명시해야 한다. 디폴트 파라미터 값 fun joinToString( collection: Collection, separator: String =..