Heritage d'une fonction Core puis Cast

Bonjour,

Il y a probablement plus simple, mais j’avais besoin de transformer la fonction .toString d’un Duration pour adapter un peu à mon besoin…

Donc j’ai créé une classe qui extends Duration, j’ai redéfini mon toString…
Sauf que je n’arrive pas à Cast un objet Duration en mon objet ‹ LocalDuration › pour utiliser le nouveau toString…
Quelqu’un a une idée ?

Effectivement tu ne peux pas downcaster un objet de type parent vers le type enfant car le type enfant possède toutes les propriétés et fonctions du parents mais aussi les siennes.
Si c’est toi qui crée l’objet Duration alors il te faut utiliser ton sous-type à la place.
Si par contre tu reçois un objet Duration créé par une autre fonction alors tu ne peux pas redéfinir sa fonction toString().
Une solution serait peut être d’ajouter une autre fonction avec une extension :

extension DurationFormat on Duration {
    String format() => " ... "; //mettre ta fonction de formattage
}

Salut Maxime,
Merci pour l’idée je vais tester ça, en effet je reçois un objet Duration d’une autre fonction système…

Bonne journée