我自己写的一个JAVA泛型问题

发布于 2021-11-02 21:00:25 字数 1033 浏览 976 评论 13

public class Tree<T> {
private T self;
private List<T> childs;
public T getSelf() {
return self;
}
public void setSelf(T self) {
this.self = self;
}
public List<T> getChilds() {
return childs;
}
public void setChilds(List<T> childs) {
this.childs = childs;
}
} 

在一个DAO实现里面用这个泛型类

public List<Tree> buildRoleTreeF(List<Role> list) {
List<Tree> Trees=new ArrayList<Tree>();
List<Role> roots=findAllRoots(list);
if(roots.size()>0){
for(Role root:roots){
Tree<Role> Tree=new Tree<Role>();
Tree.setSelf(root);
List<Role> childs=findAllChilds(root,list);
Tree.setChilds(childs);
Trees.add(Tree);
}
return Trees;
}else{
return null;
}
}
List<Role> list=bean.getList();
List<Tree> roleTrees=bean.buildRoleTreeF(list);
for(Tree rt:roleTrees){
System.out.println(rt.getSelf());
} 

为什么rt.getSelf取出来的时候还是要转型呢,泛型存进去的时候指定的类型不是不用转了么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

醉生梦死 2021-11-09 18:06:20

谢谢咯,明白 了!!!谢谢大家了,呵呵

陌上芳菲 2021-11-09 18:06:09

 

List<Role> list=bean.getList();

List<Tree<Role>> roleTrees=bean.buildRoleTreeF(list);

for(Tree<Role> rt:roleTrees){

System.out.println(rt.getSelf());

}

如此安好 2021-11-09 18:05:30

我改成这样了还是要转捏

public List<Tree<Role>> buildRoleTreeF(List<Role> list) {

List<Tree<Role>> Trees=new ArrayList<Tree<Role>>();

List<Role> roots=findAllRoots(list);

if(roots.size()>0){

for(Role root:roots){

Tree<Role> Tree=new Tree<Role>();

Tree.setSelf(root);

List<Role> childs=findAllChilds(root,list);

Tree.setChilds(childs);

Trees.add(Tree);

}

return Trees;

}else{

return null;

}

}

这里取:

List<Role> list=bean.getList();

List<Tree<Role>> roleTrees=bean.buildRoleTreeF(list);

for(Tree rt:roleTrees){

System.out.println(rt.getSelf());

}

 

情痴 2021-11-09 18:05:17

你写成 Tree<Role> 就不用转了

情场扛把子 2021-11-09 18:04:19

DONG DONG能说具体点么,我学JEE没多久,真没看出来哪里出问题了

一个人的旅程 2021-11-09 16:45:51

你的泛型写的不完整,List你用了,但是Tree没用,你定义了泛型但是要用才行啊...

居里长安 2021-11-09 12:49:16

List<Tree<Role>>

孤独患者 2021-11-07 00:21:19

必须要转的

挽清梦 2021-11-04 02:19:25

啊啊啊,好像可以不用转的,在我在一个JEE学习的群里提问,人家看到哪里问题了就是不说~~~

彩扇题诗 2021-11-03 04:50:52

当然要转啦,因为你写的是 for(Tree rt ....) 应该改为 for(Tree<T> rt...) 其中 T 就是你 Tree 中的对象类型

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文