簡體   English   中英

對通用Java類中的泛型變量使用數學運算符

[英]Use math operators on generic variables in a generic Java class

我正在嘗試編寫一些代碼,允許我在“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不允許在類上調用運算符(所以沒有+, - ,*,/)你必須把數學作為一個原語(我打算顯示代碼......但是jjnguy打敗了我:-) 。

你應該查看http://code.google.com/p/generic-java-math/ ,它解決了java中泛型算法的問題,甚至可能有你想要的幾何函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM