请教一个 static 和泛型的问题。
现在我有一个类,不得不使用泛型,定义如下
1 public final class DataService<E> implements ServiceBase<E>
2 {
3 private DataService(){}
4
5
6 private static Object instance;
7
8 public static <T> ServiceBase<T> getService()
9 {
10 // singleton implementation ...
11 if (instance == null)
12 instance = new DataService<T>();
13 .....
14 return (ServiceBase<T>) instance;
15 }
16 }
现在这样的逻辑,在 14 行有警告,但是我实在没有办法才采用这样的方式来实现泛型,原因是,如果 6 行的 instance 如果定义为
6 private static ServiceBase<E> instance;
那么立刻就会有编译错误,因为静态是不允许处理这样的泛型类型定义的。
有没有很好的解决方案,能帮助我实现下面的目标逻辑呢?
6 private static ServiceBase<E> instance;
14 return instance;