scala泛型