기본 적으로 java와 동일함
sample code
class Finder(private val list: List<String>){
fun findItem(element: String, foundItem: (element:String?) -> Unit){
val itemFoundList = list.filter {
it == element
}
if (itemFoundList.isNullOrEmpty()) foundItem(null)
else foundItem(itemFoundList.first())
}
}
class FinderGeneric<T>(private val list: List<T>){
fun findItem(element: T, foundItem: (element:T?) -> Unit){
val itemFoundList = list.filter {
it == element
}
if (itemFoundList.isNullOrEmpty()) foundItem(null)
else foundItem(itemFoundList.first())
}
}
fun main(){
val listOfItems = listOf("Rafael", "gina", "george", "kim", "lee")
val finder = Finder(listOfItems)
finder.findItem(element = "kim lee"){
println("I found String $it")
}
val listOfInt = listOf(3,5,6,7,89,29)
val listOfGeneric = FinderGeneric(listOfInt)
listOfGeneric.findItem(6){
println("I found generic type Int $it")
}
val listOfGenericTypeClass = FinderGeneric(listPerson)
listOfGenericTypeClass.findItem(element = Person(name = "kim", age = 44)){
println(it)
}
}