본문 바로가기
반응형

Kotlin4

[Android] Intent, Bundle, SavedStateHandle 객체 쉽게 전달하기. Intent, Bundle, SavedStateHandle로 다양한 데이터를 넘겨받는데 특히 객체를 넘겨받을 경우가 많다. 여러가지 방법이 있겠지만 주로 사용하는 방법은 객체를 Json으로 변환한 뒤 다시 받는 쪽에서는 Json을 객체에 매핑시켜 데이터를 가져오는 구조로 주로 사용을 했다. AS-IS 하지만 이게 매번 하려니 여간 번거로운게 아니다 하나 예시를 보자. val dataDTO = DataDTO(....) val intent = Intent(context, InfoActivity::class.java).apply { val jsonAdapter = moshi.adapter(DataDTO::class.java) this.putExtra("test", jsonAdapter.toJson(dataDT.. 2023. 11. 26.
[Kotlin] 중첩클래스(Nested Class)와 내부클래스(Inner Class) 차이점 최근에 Spring을 사용하면서 한 가지 문제에 부딪혔습니다. 특정 클래스를 내부 클래스(inner class)로 정의했더니 예상치 못한 에러가 발생했습니다. 그래서 이에 대해 조사하면서 inner class와 일반 class의 차이점을 알게 되었습니다. 이러한 경험을 토대로 이번 포스트에서는 Kotlin에서 inner class와 일반 class의 차이점에 대해 설명하고, 언제 어떤 것을 사용하는 것이 좋은지 살펴보도록 하겠습니다. 1. Outer 클래스에 대한 참조 inner class는 outer class에 대한 참조를 가지며, 이를 통해 outer class의 멤버에 직접 접근이 가능합니다. 이를 이해하는데 있어 아래와 같은 예시를 생각해보면 도움이 될 것입니다. class Outer { pri.. 2023. 8. 1.
Intellij 프로젝트 모듈별로 간단하게 나눠보기 간만에 학습 욕구가 생겨서 프로젝트를 만들었다. 그런데 프로젝트 생성하자마자 개발자병이 돋아난게 아닌가 특정 주제로 학습하고 싶어서 프로젝트를 만들었는데, 다른 주제가 하고싶으면 어떻하지? 그럼 또 새로운 프로젝트를 파야되나?고민을 하다가 스터디라는 프로젝트를 만들고 하나의 프로젝트 안에서 여러개의 주제가 생겨날때마다 추가하도록 하자라는 생각이 들었다. 루트 study라는 프로젝트 안에 여러 주제의 스터디 모듈이 생기는 구조인데, 오랜만에 위에 스크린샷처럼 구성하려니 삽질을 많이 하게되어 기록하게 되었다. 1. Root 프로젝트에서 모듈을 생성한다. root 프로젝트에서 오른쪽 클릭 > new > module 클릭 2. 생성하고자 하는 장르(?)의 모듈을 만들자 ex) Java, Gradle, etc.... 2020. 12. 13.
Kotlin 리스트 분할 및 병합하기(with chunked, windowed) 아래와 같은 리스트 2개가 있고, 두 개 리스트를 합쳐서 아래와 같은 결과를 만들고 싶다면 어떻게 해야 될까? A List 1 2 3 4 5 6 7 8 9 B List 100 200 300 400 500 600 700 800 900 결과 List 100 200 300 1 2 3 400 500 600 4 5 6 700 800 900 7 8 9 난 아래와 같은 방법을 생각했다. (혹시 더 좋은 알고리즘이나 생각이 있다면 알려주세요) 1. A List와 B List를 각각 3등분으로 나눈다 2. B List를 for문을 돌면서 각 index에 맞춰서 넣어주는 작업을 한다. 3. 합쳐진 list들을 풀어서 평평하게 만드는 만드는 작업을 한다. 코드로 옮겨보면 아래와 같이 된다. 하나씩 살펴보자 1 Line va.. 2020. 9. 2.
반응형