当前位置: 首页 > 面试题库 >

使用泛型类执行基本的算术运算

苍宜修
2023-03-14
问题内容

我想对像,,…(不包括和)这样的包装器类型Integer,每个操作仅使用一种通用方法执行基本的算术运算,例如加法,减法,乘法和除法。Float``Double``BigDecimal``BigInteger

我尝试使用泛型类执行以下操作(作为补充)。

public final class GenericClass<E extends Number> {

    public E add(E x, E y) {
        return x + y; // Compile-time error
    }
}

它发出一个编译时错误,

运算符+不能应用于E,E

有没有办法使用这种通用版本来实现这种操作?


问题答案:

不,没有办法做到这一点,否则它将内置到Java中。类型系统不够强大,无法表达这种东西。



 类似资料:
  • 我想执行基本的算术运算,如加法,减法,乘法和除法,每个操作仅使用一个通用方法,用于包装类型,如,,...(不包括和)。 我尝试使用泛型类做如下(用于添加)。 它会发出编译时错误, 运算符不能应用于E,E 有没有办法使用这种通用版本来实现这种操作?

  • 我有一个具有两个数据成员的泛型类。这是我写的一段代码 我想对num1和num2进行简单的算术运算,比如加法和减法,我还想进行简单的二进制运算,比如 但是这是不允许的,那么有人能告诉我如何执行这些任务吗?

  • 本文向大家介绍C#程序执行所有基本算术运算,包括了C#程序执行所有基本算术运算的使用技巧和注意事项,需要的朋友参考一下 C#中的基本算术运算符包括以下内容- 运算符 描述 + 加两个操作数 -- 从第一个减去第二个操作数 * 将两个操作数相乘 / 将分子除以除分子 % 模运算符和整数除后的余数 ++ 增量运算符将整数值增加一 - 减法运算符将整数值减一 要添加,请使用加法运算符- 同样,它适用于减

  • 问题内容: 我最近注意到Java关于Java基本算术运算的特质。用下面的代码 我收到“类型不匹配”的编译错误… 都是基本的算术运算在Java中(,,,)只能对原始数据类型进行和高阶(,,等),而在算术运算和是第一投地,然后评估? 问题答案: 上的操作,并且被加宽到除非编译器可以确定该值的范围。 但 BTW即使发生溢出也会编译。:]

  • 我们将在这个部分讲解有关布尔型、数字型和字符型的相关知识。 表达式是一种特定的类型的值,它可以由其它的值以及运算符组合而成。每个类型都定义了可以和自己结合的运算符集合,如果你使用了不在这个集合中的运算符,则会在编译时获得编译错误。 一元运算符只可以用于一个值的操作(作为后缀),而二元运算符则可以和两个值或者操作数结合(作为中缀)。 只有两个类型相同的值才可以和二元运算符结合,另外要注意的是,Go

  • 当我尝试测量算术运算的执行时间时,我遇到了非常奇怪的行为。包含< code>for循环且循环体中有一个算术运算的代码块的执行速度总是慢于在< code>for循环体中有两个算术运算的相同代码块。下面是我最后测试的代码: 我测试了不同级别的代码优化(,,和),使用不同的在线编译器(例如onlinegdb.com),在我的工作机器上,在我的hame PC和笔记本电脑上,在RaspberryPi和同事的