私は EJML を使用しLinearSolver_B64_to_D64
ており、constructor:LinearSolver_B64_to_D64(LinearSolver<BlockMatrix64F> alg)
を持つ class を使用したいと考えLinearSolver<BlockMatrix64F>
ていますLinearSolver
。
私が知っていること: 一般に、特定のクラスでそのインターフェースを実装するよりも、インターフェースを作成します。インターフェイスをパラメーターとして受け取る関数 (特定のクラス内) について読みました。これは、関数がクラスについて何かを知る必要がないためです。
私の質問LinearSolver_B64_to_D64
:インターフェイスをパラメーターとして渡す方法がわからないため、クラスを初期化する方法がわかりません。
更新: 次のコードを試しました:
public class UseMatrixInterface{
public UseMatrixInterface(){
}
public void do1(){
DenseMatrix64F a = new DenseMatrix64F(3,3);
LinearSolver_B64_to_D64 ls = new LinearSolver_B64_to_D64(null);
//it throws a nullpointer exeption. I assume, it is because i used null
//instead of the requiered parameter.
ls.invert(a);
a.print();
}
public void do2(){
LinearSolver<BlockMatrix64F> lsD;
LinearSolver_B64_to_D64 ls = new LinearSolver_B64_to_D64(lsD);
//not working, because lsD cannot be initialised;
}
}