I've been asked this before. I discussed a weakness I had and talked how I recently took steps to improve upon that weakness. Turning the conversation from a weakness to an 'area of development' is much better.
I took the opportunity to talk about my experience and myself as a person. It was great not to be interviewed with a rigid set of questions and instead have people take an interest in who I am and let me talk about what I have to offer, rather than slotting into set questions with a set response.
Never say you have a weakness. Always say there is always an area I can improve upon. At 22 I am not the finished article by a long shot so I wasn't going to pretend I was. Analyse the role in your head and come up with an answer/area which may not be applicable too much to the job in hand. Always include how you have recently recognised this as a weak area and how you have made steps to improve so.