[Kotlin] check lateinit is initialized (safely accessing lateinit vars) https://blog.jetbrains.com/kotlin/2017/09/kotlin-1-2-beta-is-out/ -Exception in thread "main" kotlin.UninitializedPropertyAccessException 위의 exception 을 마딱뜨린 사람이 은근 많을 것이다.그렇다 저 녀석은 lateinit 이라고 선언된 var 에 값이 assign 되기 전에 접근할 때 생기는 exception 이다. -Kotlin 1.2 에서 추가된 기능이 있는데, 바로 reflection 방식을 이용한 isInitialized 함수이다.lateinit var file:File // ... if (::file.isInitialized) { ... } -reflection 방식이기 때문에.. 2020. 8. 12. [Java] Interface 에서 몰랐던 사실. 상수 정의. 자바, interface 에서 몰랐던 사실. 상수 정의. 지금까지 자바를 사용하면서 interface 에 상수를 정의한 적이 없어서 interface 에 상수를 정의할 수 있다는 사실을 몰랐다. 사실 interface 에 상수를 정의하는 것은 anti-pattern 이기 때문에 사용하지 않는 것이 맞긴 하지만, 간혹가다 framework 나 library 를 사용할 때 상수가 interface 에 정의된 경우가 있기 때문에 알아두면 좋을 것 같다. interface OnDragListener{ String device = "Mouse";void onDrag();} 위와 같이 상수 정의가 가능하다. interface 의 경우 그냥 변수정의를 해도 자동으로 public static final 이 붙는다. 따.. 2013. 8. 16. 반응형 이전 1 다음