我目前正在实现一种算法来在数据集中生成高方差簇。在我的不同测试中,我将使用许多不同的数据类型,因此我需要使我的 Cluster 类可用于任何数据类型 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() 方法中,行score = x.distanceTo(y)
会抛出错误,因为对于类型T,distanceTo() 方法未定义。对于我的所有数据类型,我将定义此方法以供此处使用。如何告诉 Cluster 类将定义 distanceTo()?
预先感谢您的帮助。
最佳答案
我想你可以使用<T extends YourClass>
并定义distanceTo()
在YourClass
.
关于java - 告诉 Java Class<T> T 中有某个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22617607/