我正在尝试分析一个用Java编写的近似最近邻算法,该算法被实现为一个泛型抽象类,但我不知道如何实例化它。
Eclipse 给我显示的错误是“无法实例化类型 KdTree”,这对我帮助不大。你们有关于如何实例化这个类以便我进行测试的建议吗?
类的定义和构造函数如下:
public abstract class KdTree<T> { private KdTree(int dimensions, Integer sizeLimit) { this.dimensions = dimensions; }}
我尝试实例化的代码如下:
public class test_robo { public void run_test() { KdTree<Integer> tree = new KdTree<Integer>(1,1); }}
KdTree 的完整代码链接http://robowiki.net/wiki/User:Rednaxela/kD-Tree
回答:
首先,你不能实例化一个抽象类。
我查看了你提供链接中的代码;那里已经有几个基础类 KdTree<T>
的实现。
- WeightedSqrEuclid
- WeightedManhattan
…
如果这些不是你想要的,你可以扩展基础类并按你的意愿实现所有那些抽象方法。