Java 如何查看对象是否更接近相等

Java 如何查看对象是否更接近相等,java,generics,comparable,approximate,Java,Generics,Comparable,Approximate,我的方法是: <T extends Comparable<T>> T moreApproxEqual(T object, T less, T greater) { //TODO: return less or greater, depending on which is closer to object return null; } T moreproxequal(T对象,T小,T大){ //TODO:根据离对象较近的对象返回较少或较多的值 返回null

我的方法是:

<T extends Comparable<T>> T moreApproxEqual(T object, T less, T greater) {
    //TODO: return less or greater, depending on which is closer to object
    return null;
}
T moreproxequal(T对象,T小,T大){
//TODO:根据离对象较近的对象返回较少或较多的值
返回null;
}

我有一个T的列表,从中我发现变量“less”和“greater”是列表中最接近变量“object”的两个值。有没有什么方法可以告诉我这两个对象中是否有一个更接近“对象”,而没有关于对象的更多信息?

没有。你可以告诉我
对象
介于
较小
较大
之间,但一般来说,
可比
没有关于“距离”的信息在任何有意义的意义上。

否。您可以看出
对象
介于
较小的
较大的
之间,但一般来说,
可比的
没有提供有关“距离”的信息在任何有意义的意义上。

因为它们是可比较的,所以可以使用
compareTo
compareTo
不保证值的“接近性”,不过,上次我检查时。如果两个对象更不相似,则不能指望返回值更大。@虽然这是事实,但如果您自己创建类,从技术上讲,您可以让
compareTo()
方法返回一个距离(负=>小于,正=>大于)。您可能应该为此创建一个
distance()
方法,但是…@NoseKnowsAll:a
distance()
方法确实更合适。没有理由这样做,因为它会增加任何其他实现都无法依赖的行为。因为这些都是可比的,所以可以使用
compareTo
compareTo
但是,上次我检查时,compareTo并不能保证值的“接近性”。如果两个对象更不相似,则不能指望返回值更大。@虽然这是事实,但如果您自己创建类,从技术上讲,您可以让
compareTo()
方法返回一个距离(负=>小于,正=>大于)。您可能应该为此创建一个
distance()
方法,但是…@NoseKnowsAll:a
distance()
方法确实更合适。没有理由这样做,因为它会增加任何其他实现都无法依赖的行为。这是正确的。如果你只有更少或更多的信息,你无法分辨哪个更接近。这是正确的。如果你只有更少或更多的信息,你无法分辨哪个更接近。