对通用Java类中的泛型变量使用数学运算符

Wil*_*ton 6 java generics math

我正在尝试编写一些代码,允许我在"T extends Number"对象实例上执行基本的数学运算.它需要能够处理作为子类的任何数字类型Number.
我知道一些类型下Number.add()内置方法,有些甚至有.multiply()方法.我需要能够将任何可能类型的两个泛型变量相乘.我进行了搜索和搜索,但未能提出任何明确的答案.

public class Circle<T extends Number> {

private T center;
private T radius;
private T area;

// constructor and other various mutator methods here....

/**
  The getArea method returns a Circle
  object's area.
  @return The product of Pi time Radius squared.
*/
public Number getArea() {
    return  3.14 * (circle.getRadius()) * (circle.getRadius());      
}  
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.泛型是我在学习Java时遇到的最困难的事情.我不介意做腿部工作,因为我以这种方式学得更好,所以即使是正确方向的优势也会非常有帮助.

jjn*_*guy 4

您需要做的是使用 的双精度值Number。但是,这意味着您无法返回该Number类型。

public double getArea()
{
    return  3.14 * 
            (circle.getRadius().doubleValue()) * 
            (circle.getRadius().doubleValue());      
}  
Run Code Online (Sandbox Code Playgroud)