开发者

Use math operators on generic variables in a generic Java class

开发者 https://www.devze.com 2023-01-21 22:16 出处:网络
I\'m trying to write some code that will allow me to perform basic math operations on a \"T extends Number\" object instance. It needs to be able to handle any number type that is a subclass of Number

I'm trying to write some code that will allow me to perform basic math operations on a "T extends Number" object instance. It needs to be able to handle any number type that is a subclass of Number.

I know some of the types under Number ha开发者_开发问答ve .add() methods built in, and some even have .multiply() methods. I need to be able to multiply two generic variables of any possible type. I've searched and searched and haven't been able to come up with a clear answer of any kind.

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

Any help would be much appreciated. Generics are the most difficult thing I've encountered in learning Java. I don't mind doing the leg work because I learn better that way, so even a strong point in the right direction would be very helpful.


What you will need to do is use the double value of the Number. However, this means that you cannot return the Number type.

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


Java does not allow operators to be called on classes (so no +, -, *, /) you have to do the math as a primitive (I was going to show the code... but jjnguy beat me to it :-).

0

精彩评论

暂无评论...
验证码 换一张
取 消