基于注释的数据结构可视化 - 那里有类似的工具吗?

时间:2010-06-18 10:44:24

标签: java annotations metaprogramming

对于大学的项目,我计划构建一个基于注释的工具来可视化/使用数据结构。

这是我的想法:

想要试用自编数据结构的学生需要:

  • 使用某种标记注释标记其数据结构的类型,例如

    @List
    public class MyList<E> { ... }
    

    这样我就知道如何表示数据结构

  • 需要提供一个迭代器,以便我可以按正确的顺序检索元素

  • 需要注释插入和删除方法,例如

    @add public boolean insert(E e) { ... }
    

    这样我就可以将该方法“绑定”到某个按钮上。

是否存在类似的应用程序?我google了一下,但没有找到类似的东西。

1 个答案:

答案 0 :(得分:2)

我真的不明白为什么你需要使用Annotations来完成这样的任务?您将最终得到一些您的框架无法解析的奇怪方法,或者将以错误的方式解析它 - 让您构建一组规则,以便正确编写这些方法,以便您的框架能够理解它们。

我认为使用接口是更好的解决方案。使用getIterator,getIndex等方法创建一个名为StudentList的东西,并让学生实现这个界面。然后,您将能够加载任何类,并根据它们实现的接口使用它。

此外,您可以重复使用像List或Collection这样的可用接口,但是,这可能会让学生编写大量未使用的代码来实现该接口。所以我宁愿选择编写自己的界面。

此类界面的示例如下:

interface StudentList<T> {
    public Iterator<T> getIterator();
    public T get(int index);
    public void add(T element);
    public void remove(T element);
}

学生会像这样实现它(这个例子只是围绕ArrayList):

class MyList<T> implements StudentList<T> {
    private ArrayList<T> realList;

    public MyList() {
        realList = new ArrayList<T>();
    }

    public void add(T element) {
        realList.add(element);
    }

    .......
}

你会像这样测试它:

void testList(StudentList<String> list) {
   list.add(5);
   list.add(10);
   list.get(20);
}

testList(new MyList<String>());

对于学生和对你而言,一切都很清楚。