我目前正在实现一种算法来生成数据集中的高差异聚类。在我不同的测试,我将使用许多不同的数据类型,所以我需要让我的群类可用于任何数据类型T.所以,我有:告诉Java类<T> T中有一定的方法
public class Cluster<T> {
private int score;
private ArrayList<T> list;
private int k;
,并能够评估的有效性这个算法,我们有一个基于集群中每个对象之间的距离计算得分。这里是computeScore()方法:
private void computeScore() {
if (list.size() < 2) score = 0;
else if (list.size() == 2) {
T x = list.remove(1);
T y = list.remove(0);
score = x.distanceTo(y);
list.add(y);
list.add(x);
}
}
的问题是,在computeScore()方法,因为对于类型T的distanceTo()方法是未定义的线score = x.distanceTo(y)
引发错误。对于我所有的数据类型,我将在这里定义这个方法。如何告诉Cluster类,distanceTo()将被定义?
在此先感谢您的帮助。
你在哪里定义'distanceTo'方法?对于所有支持的类型,它是否处于某种超级类型? –