Écrire une classe générique Classe:générique
L’idée, quand on écrit une classe générique, c’est d’ajouter, au moment de la déclaration de la classe, ce qu’on appelle un paramètre de type. Ce paramètre s’écrit entre chevrons : Paramètre:de type
class Kennel<T>
{
}
Ici, le paramètre de type est nommé T, c’est souvent une convention. Mais il est tout à fait possible de lui donner un tout autre nom. Par exemple : TheClass, TypeParam, etc.
Dans la classe Kennel, il convient de remplacer partout l’utilisation de la classe Animal par ce fameux paramètre de type T :
class Kennel<T>
{
companion object
{
private const val KENNEL_CAPACITY = 10
}
private val animals = arrayOfNulls<Any>(Kennel.KENNEL_CAPACITY)
var animalsCounter = 0
private set
private fun getAvailablePlacesNumber(): Int =
Kennel.KENNEL_CAPACITY - animalsCounter
fun addAnimal(animal: T): Boolean
{
return if (getAvailablePlacesNumber() < 0)
{
false
}
else
{
animals[animalsCounter] = animal ...