【发布时间】:2020-06-02 10:04:49
【问题描述】:
在下面的程序中,absEqual() 方法中的步骤ob.num.doubleValue() 是如何工作的?它想做什么?
class NumericFns<T extends Number>{
T num;
NumericFns(T n ){
num = n ;
}
boolean absEqual(NumericFns<?> ob) {
if (Math.abs(num.doubleValue())==
Math.abs(ob.num.doubleValue()))
return true ;
return false ;
}
}
public class demo {
public static void main(String[] args) {
NumericFns<Integer> iob = new NumericFns<Integer>(6) ;
NumericFns<Double> dob = new NumericFns<Double>(-6.0) ;
if(iob.absEqual(dob))
System.out.println("Absolute Values are equal") ;
else
System.out.println("They differ") ;
}
}
【问题讨论】:
-
NumericFns中的每个T至少是一个Number。在不知道具体类型的情况下,您总是知道它至少是一个Number。 -
请注意,尽管此问题的标题当前指的是通配符参数,但您实际上并未在问题中使用通配符 (
<?>)。