Guice ライブラリの AOP を使用して、メソッド パラメータに対して特定のアサーションを行うにはどうすればよいですか?
線形代数計算用の Vector クラスを実装しました。
class Vector{
int n; // dimensions
Vector sum(List<Float> v2){...}
Vector sub(List<Float> v2){...}
...
}
通常、Vector クラスのメソッドは float の List を受け取りますv2
。v2
計算を行う前に、 が vector と同じ次元でない場合は例外をスローしたいと思いthis
ます。
if (v2.size() != n)
throw new IllegalArgumentException(String.format("v2.size() should be %d, but is %d.", n, v2.size()));
パラメータとして受け取るメソッドごとに同じコードをコピーできますが、v2
面倒です。
Guice の AOP 機能を使用して同じことを行う簡単な方法はありますか? 何かのようなもの:
Vector sum(@Dim(this.n) List<Float> v2){...}