我正在使用EJML,我想使用類LinearSolver_B64_to_D64
,它具有構造函數:LinearSolver_B64_to_D64(LinearSolver<BlockMatrix64F> alg)
與接口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;
}
}
您需要將接口的實現作爲實際值傳遞。 –
您需要一個實現LinearSolver接口的類的實例。 –