Hullaballoonatic
09/17/2018, 6:29 PMSam
09/17/2018, 6:35 PMfun <T> copyWhenGreater(list: List<T>, threshold: T): List<String>
where T : CharSequence,
T : Comparable<T> {
return list.filter { it > threshold }.map { it.toString() }
}
Hullaballoonatic
09/17/2018, 6:36 PMSam
09/17/2018, 6:37 PMopen class Animal
interface Carnivorous
class Cat : Animal()
class Dog : Animal()
class Pig : Animal()
class Lion : Animal(), Carnivorous
class Tiger : Animal(), Carnivorous
fun <T> printCarnivorousAnimal( animal : T ) where T : Animal, T : Carnivorous {
println( animal )
}
fun main(args: Array<String>) {
printCarnivorousAnimal( Lion() )
printCarnivorousAnimal( Tiger() )
printCarnivorousAnimal( Cat() ) // error as Cat doesn't implement Carnivorous
}
Hullaballoonatic
09/17/2018, 6:56 PMSam
09/17/2018, 6:57 PMAndreas Sinz
09/17/2018, 7:15 PMT
has to be CharSequence
AND Comparable<T>
Hullaballoonatic
09/17/2018, 7:16 PM