![](/img/trans.png)
[英]how to use generics in Java with language operators and generic class extending Number
[英]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.