请教一个 static 和泛型的问题。

sacrefies 2007-06-23 06:36:17
-----------------------------------------------------------------
这个问题是我从基础类版块转过来的,因为那边没有人回答,希望这边能有人帮忙。。。。。。
-----------------------------------------------------------------






现在我有一个类,不得不使用泛型,定义如下

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;
...全文
246 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sacrefies 2007-06-25
  • 打赏
  • 举报
回复
回复人:applebomb(袋装苹果)
?

警告没关系啊,不是error就可以了
-----------------------------------------

啊。。。因为这个警告暗指在运行时第 14 行很可能会失败,所以我希望能有所改进。



回复人:zqrqq(zqrain(结帖是一种美德)) ( 五级(中级)
-------------------------------------
这位,我试过的,确实不成。
zqrqq 2007-06-24
  • 打赏
  • 举报
回复
interface ServiceBase<E> {

}
public final class DataService<E> implements ServiceBase<E> {

private static ServiceBase<E> instance;

public static ServiceBase<E> getService() {
if (instance == null)
instance = new DataService<E>();
return instance;
}
}

以上代码编译无误,不知道是否是你要的?
applebomb 2007-06-23
  • 打赏
  • 举报
回复
警告没关系啊,不是error就可以了

50,527

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧