代码之家  ›  专栏  ›  技术社区  ›  Kap

从链接对象模型创建表

  •  2
  • Kap  · 技术社区  · 17 年前

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

    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 回复  |  直到 9 年前
        1
  •  1
  •   David Moles paddy-p    17 年前

    如果你说“不工作”是指它总是回来 EMPTY_ARRAY ,然后我怀疑 parentElement 不是你想的那样。尝试添加

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

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

    另一方面,因为 cPackage , cClass cMethod 所有工具 getChildren() ,实际上你并不需要所有那些if语句——只是

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

    Model 要传入的子类,可以忽略 if 声明也是,尽管您可能需要检查 null