전체 글 1664

Kotlin에서 변수 깊은 복사(Deep copy) 하기

Gson을 아래와 같이 이용하면 의도적으로 깊은 복사가 가능하다. class Animal{ fun clone(): Animal { val stringAnimal = Gson().toJson(this, Animal::class.java) return Gson().fromJson(stringAnimal, Animal::class.java) } } val originalAnimal = Animal() val clonedAnimal = originalAnimal.clone() 단어. 얕은 복사(shallow copy), 깊은 복사(deep copy) 참고 : https://velog.io/@ellyheetov/Shallow-Copy-VS-Deep-Copy 출처 : https://stackoverflow.com/..

@JvmOverloads: constructor 가 해주는 것

@JvmOverloads 어노테이션을 사용하면 여러 개의 constructor를 상속받는 번거로움이 줄어들고, xml inflation 시에도 문제가 발생하지 않는다. constructor를 직접 작성한 버전 class CustomView: View { constructor(context: Context) : super(context) constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) constructor(context: Context, attrs: AttributeSet?, @AttrRes defStyleAttr: Int) : super(context, attrs, defStyleAttr) } @JvmOverloads..

안드로이드 텍스트뷰 속성 (Android TextView Attributes)

이 글은 제가 작성한게 아니라... 제가 나중에 쓰려고 하는 스크랩에 가깝습니다. 더 자세한 건 출처를 참고 하세요~ + TextView 속성의 종류 autoLink TextView를 링크 형태로 사용. autoText 텍스트 입력 시, 자동 오타 수정 기능 사용. breakStrategy TextView의 텍스트 줄넘김 정책 지정. bufferType getText() 함수로 리턴되는 버퍼 타입 지정. capitalize 알파벳 소문자 입력(표시) 시, 대문자로 자동 변환. cursorVisible 텍스트 입력 커서를 보일지 말지 여부 지정. digits TextView에 입력 가능한 문자 제한. drawableBottom 텍스트를 기준으로 아래쪽에 이미지 출력. drawableEnd 텍스트를 기준으로..

String.hashCode()는 같은 값을 리턴합니다. 근데 왜 HashMap에서 쓰나요?

결론 먼저.. String.hashCode()는 중복된 값을 리턴할 수 있습니다. 하지만 HashMap에서 key로 String을 쓰셔도 됩니다. 왜냐면, HashMap은 hashCode(), == and equals() 를 이용해서 값을 저장할 entry lookup 을 선정하기 때문입니다. 즉, hashCode()값이 같아도, == 이나 equals() 함수를 통해서 다른 entry lookup으로 분기 된다는 것입니다. ------------------------------------------------------------------------------------------------------------------------- HashMap의 key를 String으로 쓸 기회가 있어서.. 이..