Kotlin

    lateinit var

    Lateinit클래스 내에서 변수만 Nullable로 미리 선언하고 초기화를 나중에 해야 하는 경우 lateinit 키워드를 사용한다.var tmp: String? = nulltmp?.plus("1")위와 같이 null 값으로 변수를 선언할 수 있지만, 이 경우 tmp 변수를 사용하고자 하는 모든 곳에 Safe Call(?.)을 붙여줘야해서 가독성이 저하될 수 있다.이때 lateinit을 사용하여 변수를 선언하면 Safe Call을 사용할 필요가 없어 가독성이 높아진다.lateinit var tmp: Stringtmp.plus("1")  lateinit 특징1. var로 선언된 클래스의 프로퍼티에만 사용 가능2. null값은 허용되지 않음3. 기본 자료형(int, Long, Double, Float 등)..

    getJSONArray vs OptJSONArray

    Kotlin에서 JSON의 배열 데이터를 받아오고자 할 때, getJSONArray또는 optJSONArray를 사용할 수 있다. 두가지 모두 JSONObject 클래스에서 사용되는 메소드이지만, 동작 방식과 예외처리 방식에 약간의 차이가 있다. getJSONArray getJSONArray는 필드가 반드시 존재해야 하며, 필드가 존재하지 않을 경우 JSONException을 발생시킨다. 따라서, 해당 필드가 반드시 존재하는 경우에만 사용해야 한다. val jsonArray = jsonObject.getJSONArray("title") optJSONArray optJSONArray는 필드가 존재하지 않거나, 필드 값이 null인 경우에도 null을 반환한다. getJSONArray처럼 필드가 존재하지 않..