多くの計算を含む関数がいくつかあります。すべての計算は、演算子 []、*、/、+、および - を使用して行われます。他に目立っているのは、ループとテストです。したがって、これらの同じ関数は、それらの演算子を実装する任意の型で「使用できます」。double、float、int、long など。パフォーマンス上の理由から、基本型のみを使用します。このジェネリックを行う方法はありますか?
また、パフォーマンス上の理由から、float と int を double にキャストし、double で calc をキャストしたくありません。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);
}
…そして、使用されるすべての型に対して基本操作を static fn として定義します。しかし、これらはインライン化されていないため、別の fn 呼び出しが追加されます。
Javaで…のようなことをする方法はあり
<T implements +, implements ->
ますか?