有以下代码:
class Num<T> {
private T val;
public Num(T val) {
this.val = val;
}
public boolean Compare(T val) {
System.out.println(this.val);
System.out.println(val); return (this.val == val);
}
}
public class First { public static void main(String args[]) {
Num<Double> a = new Num<Double>(1.0);
System.out.println(a.Compare(1.0));
}
}
输出的结果是false,为什么会这样?我把Double换成Integer、Short之类的或者String然后用相应类型的数值进行比较就输出了true了,只有Float、Double不行。请问是什么原因造成的?怎么解决?