我有一些包含很多计算内容的函数。所有计算均使用运算符 []、*、/、+ 和 - 完成。Eyerything else 是循环和测试。因此,这些相同的功能“可以”用于实现这些运算符的任何类型,例如。double、float、int、long 等。出于性能原因,我只使用基本类型。有没有办法做到这一点?
另外 - 出于性能原因,我不想将浮点数和整数转换为 double 并以 double 计算。我想在 int 上计算 int,在 float 上计算 float,在 double 上计算 double。我只是不想写 3 次相同的代码,只是使用的类型不同。
例如,猜你有
public double doSomething(double a, double b)
{
return a * b + 1;
}
当然,实际的 fn 做的远不止这些。
我认为一个技巧是这样的
public T doSomething(T a, T b)
{
return staticAdd(staticMul(a,b),1);
}
...并将基本操作定义为所有使用的类型的静态 fn。但由于那些没有内联,这将增加另一个 fn-call。
java有没有办法做一些事情,比如
<T implements +, implements ->
......?