728x90
반응형

setter 2

Property in kotlin

Class 안에 있는 member 변수, 그리고 그 값을 get, set 하는 것과 관련하여 코틀린에서는 어떻게 처리되는지 확인할 수 있다. class Default { var i: Int = 0 get() { println("get ${field}") return field } set(value) { println("set(${value})") field = value } } fun defaultGetSet() { val d = Default() d.i = 2 d.i } fun main() { defaultGetSet() } kotlin에서는 get, set을 할 때 Java처럼 getXXX 식으로 하는게 아니라 해당 멤버변수(프로퍼티) 아래에 get, set 함수를 작성해 주면 된다. 그리고 해당 멤..

Develop!/Kotlin 2023.08.07

Reflection

리플렉션에 대해 정확하게 무엇이다라고 정의 내리기가 쉽지 않다. 명확하게 캡슐화를 하여 접근하지 못하도록 정의 된 생성자를 포함하여 멤버변수라던가 메소드에 접근 가능하도록 해 주는 기능이라고 정의하면 될려나 모르겠다. 원래는 접근하지 못하는 코드에 어떻게 접근하는 것일까? Reflection 이란 말 처럼 Heap 메모리에 올라간 Instance를 투영하여 실제 Class가 어떻게 생겼는지 확인하는 방법으로 접근한다고 한다. 내부적으로 정확하게 어떻게 구현 되어 있는지 알 수 없지만 ^^ 그런데 이러한 기능은 코드를 통해 접근하지 못하도록 의도를 가지고 만든 코드를 오히려 망치는 기능일수도 있는데 왜 존재하는 것일까? Reflection이 사용된 대표적인 코드는 바로 Spring Framework의 DI..

Java 2021.06.25
728x90
반응형