对于大学的项目,我计划构建一个基于注释的工具来可视化/使用数据结构。
这是我的想法:
想要试用自编数据结构的学生需要:
使用某种标记注释标记其数据结构的类型,例如
@List
public class MyList<E> { ... }
这样我就知道如何表示数据结构
需要提供一个迭代器,以便我可以按正确的顺序检索元素
需要注释插入和删除方法,例如
@add public boolean insert(E e) { ... }
这样我就可以将该方法“绑定”到某个按钮上。
是否存在类似的应用程序?我google了一下,但没有找到类似的东西。
答案 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>());
对于学生和对你而言,一切都很清楚。