본문 바로가기
프로그래밍 놀이터/Kotlin, Coroutine

[Effective Kotlin] Item 23 : Avoid shadowing type parameters

by 돼지왕 왕돼지 2022. 3. 20.
반응형

이 글은 Effective Java 를 완독하고, Kotlin 을 상용으로 사용하는 개발자 입장에서
Effective Kotlin 글 중 새로운 내용, remind 할 필요 있는 부분, 핵심 내용 등만 추려 정리한 내용입니다.


#

interface Tree
class Birch: Tree
class Spruce: Tree

class Forest<T: Tree> {
	fun <T:Tree> addTree(tree:T){ // <T:Tree> 가 없어져야..
		// ...
	}
}

val forest = Forest<Birch>()
forest.addTree(Birch())
forest.addTree(Spruce())

이런 식의 type parameter shadowing 은 잘 보이지 않는다.

 

만약 Spruce 와 같이 다른 subtype 을 받을 요량이라면 다른 이름의 type parameter 를 사용하는 것이 좋다.

class Forest<T: Tree> {
	fun <ST: T> addTree(tree:ST){
		//..
	}
}

 

 

Summary

 

 

 

반응형

댓글