Dimenticavo: per rendere la classe generica e non limitarla ad un tipo di dato potresti utilizzare un template, risulterebbe anche più corretto concettualmente.