Expandable Staff

Hello everyone,
I am writing here to ask for help / advice regarding the best way to animate the weapon of a character I am working on.
I would like to make an extendable Staff, like that of young Goku in Dragon ball.
For the moment I have tried using a simple bone that applies a strech to shorten the stick and to lengthen it.
I also tried with a Shape Keys (and it seems better to me than the Armature system).
In your opinion, are there better ways to manage stick stretching? I have kept the staff Armature separate from that of the character so as I pose it, I can decide when to lengthen or shorten the staff.