重构泛型