我目前正在实施一种算法,以在数据集中生成高方差群集.在我的不同测试中,我将使用许多不同的数据类型,因此我需要使我的Cluster类可用于任何数据类型T.所以,我有:
public class Cluster<T> {
private int score;
private ArrayList<T> list;
private int k;
Run Code Online (Sandbox Code Playgroud)
为了能够评估该算法的有效性,我们得到了一个基于集群中每个对象之间距离计算的分数.这是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);
}
}
Run Code Online (Sandbox Code Playgroud)
问题是在computeScore()方法中,该行score = x.distanceTo(y)会引发错误,因为对于类型T,distanceTo()方法是未定义的.对于我的所有数据类型,我将在此处定义此方法.我如何告诉Cluster类,是否定义了distanceTo()?
在此先感谢您的帮助.