섀도잉1 [Effective Kotlin] 아이템 23. 타입 파라미터의 섀도잉을 피하라 섀도잉이란 무엇인가? class Person(val name : String) { fun addPerson(name : String) { // ... } } addPerson() 함수의 파라미터가 Person class의 프로터티 이름과 같아진다. 외부 스코프의 프로퍼티를 가리게 되는 경우를 섀도잉이라 한다. 이를 개발자가 알아차리기 힘든 경우가 생긴다. 타입 파라미터에서도 문제가 생긴다. interface Payment class KakaoPay: Payment class NaverPay: Payment class PaymentHistory { fun addPayment(payment: T) { // ... } } 이러한 경우는 PaymentHistory의 제네릭 타입과 addPayment()의 타입 .. 2023. 1. 25. 이전 1 다음 반응형