从链接对象模型创建表

时间:2009-08-05 11:54:51

标签: java eclipse

我有以下模型,它使元素成为其后面元素的父元素。 例如,我从数组数组中的服务器获取数据,如下所示:

net      Person       age
net      Person       height

net      Address      streetname

org      Company      name

org      Company      location

com      School       color

com      School       number

请在昨天阅读下面的链接,查看模型类和结构。我在这个链接中提出的问题不是我现在想要的。我只是想让你看到数据模型和结构。

Comparing Linked-objects

我的问题现在是

我想从模型中创建一个表,但我发现很难实现内容和标签提供程序。所以我在问我怎么做。 每列将包含前一列的子项等。

感谢您的帮助。

我在内容提供商中试过这个,但它不起作用:

public Object[] getElements(Object parentElement) {

              if(parentElement instanceof cPackage) {
         cPackage pack = (cPackage)parentElement;
         return pack.getChildren().toArray();
     }else if(parentElement instanceof cClass) {
         cClass klas = (cClass)parentElement;
         return klas.getChildren().toArray();
     }else if(parentElement instanceof cMethod) {
         cMethod met = (cMethod)parentElement;
         return met.getChildren().toArray();
     }
        return EMPTY_ARRAY;
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如果“不工作”意味着它总是返回EMPTY_ARRAY,那么我怀疑parentElement不是您认为的那样。尝试添加

System.out.println(parentElement.getClass().getSimpleName());

在方法的顶部,看看你得到了什么。

在旁注中,由于cPackagecClasscMethod都实现getChildren(),因此您实际上并不需要所有if语句 - 只需

if (parentElement instanceof Model) {
  return ((Model)parentElement).getChildren().toArray();
}

应该这样做。实际上,如果您希望只传入Model个子类,您也可以省略if语句,但您可能需要检查null