如何通用列表<object> param </object>

时间:2012-04-17 15:11:46

标签: java

这是我的通用建设者

public TreeContainer(Class<T> type, Object parentPID, List<Object> childrensPID) throws IllegalArgumentException {
    super(type);
    this.parentPID = parentPID;
    this.childrensPID = childrensPID;
}

这是我的bean(带有getter setter)

public class DirectoryBean implements Serializable {
      private long id;
      private String name;
      private DirectoryBean parent;
      private List<DirectoryBean> childrens;    
}

我像这样创建一个新的Tree Container

TreeContainer<DirectoryBean> treeContainer = new TreeContainer<DirectoryBean>(DirectoryBean.class,"parent", "childrens" );

但是&#34;孩子们&#34;参数是非法的,我怎样才能在这种情况下传递列表参数

2 个答案:

答案 0 :(得分:1)

将其更改为? extends Object可能就足够了。但是,这里使用泛型的目的是限制数据类型的范围。你最好做一些事情:

? extends BeanBaseObject

答案 1 :(得分:1)

你的构造函数需要这个

List<Object> childrensPID

但是你传递的是一个字符串“孩子们”。 您可以将它放在列表中来解决它。

List<Object> childrens = new ArrayList<Object>();
childrens.add("childrens");
new TreeContainer<DirectoryBean>(DirectoryBean.class,"parent", childrens );