我想为我的学生们做一个愚蠢的榜样,但是不知道我能否做我想做的事

我想用泛型做abs方法。

我的想法与此类似:

public class MiMath {
  public static <T extends Number> T abs(T objeto) {
    if (objeto.doubleValue()<0)
        return (T) -objeto.doubleValue();
    else
        return  objeto;
  }
}


在这个阵容中

return (T) -objeto.doubleValue();


月食说(T)不是类型

最佳答案

问题在于,您在此处使用(T)所做的实际上不是强制转换,在幕后它使用自动装箱并调用T.valueOf()-泛型不知道。

对于泛型的一个很好的例子,您最好使用集合之类的东西(因为它们也是人们最有可能使用它们的地方)。

07-21 18:44