我正在尝试编写一些代码,使我能够对“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/