java泛型,Type对象获得泛型类型的两个扩展方法

1、定义扩展对象
1: public static class ExtendMethod
2: {
3:
4: public static Type GetSingleGenericType(this Type t)
5: {
6: Type[] ts = GetGenericType(t);
7: if (ts == null) return null;
8: return ts[0];
9: }
10:
11: public static Type[] GetGenericType(this Type t)
12: {
13: if (!t.IsGenericType) return null;
14: List lt = new List();
15: int begin = t.FullName.IndexOf('[');
16: int end = t.FullName.LastIndexOf(']');
17: string str = t.FullName.Substring(begin + 1, end - begin - 1);
18: while(true)
19: {
20: begin = str.IndexOf('[');
21: if (begin < 0) break;
22: lt.Add(Type.GetType(str.Substring(begin + 1, str.IndexOf(',') - 1)));
23: str = str.Remove(0, str.IndexOf(']') + 1);
24: str = str.TrimStart(',');
25: }
26: return lt.ToArray();
27: }
Tags:  泛型集合 泛型方法 什么是泛型 泛型编程 java泛型

延伸阅读

最新评论

发表评论