java - 在泛型 Java 类中对泛型变量使用数学运算符

标签 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());      
}  

任何帮助将不胜感激。泛型是我在学习 Java 中遇到的最困难的事情。我不介意做腿部锻炼,因为那样我学得更好,所以即使是在正确方向上的强项也会非常有帮助。

最佳答案

您需要做的是使用 Number 的 double 值。但是,这意味着您不能返回 Number 类型。

public double getArea()
{
    return  3.14 * 
            (circle.getRadius().doubleValue()) * 
            (circle.getRadius().doubleValue());      
}  

关于java - 在泛型 Java 类中对泛型变量使用数学运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028358/

相关文章:

algorithm - 关于线性分配问题的表述

java - 在 GET 请求中将 java.util.Set 作为 QueryParam 值传递

java - 在 Java 中使用流排序相对于集合排序有何优缺点?

java - 如何从非委托(delegate)类在 camunda 中设置新变量

c++ - 将参数定义为未指定的模板类型

java - Java中从子类实例调用类的泛型方法返回实例的类的误解

java - 将 charAt 检查 'containing A-Z' 转换为 'not containing A-Z'

java - 类型转换通用列表

Java Math.cos(Math.toRadians(<angle>)) 返回奇怪的值

c++ - 如何在 C++ 中实现贝塞尔曲线?