1
我想將4個數組從A類中的方法傳遞到B類中的方法。 我在類B中的方法中創建類A的實例以獲取數組。在Java中清除多維對象
一個類中的方法被定義爲對象[]和使用:
return new Object[]{Array1,Array2,Array3,Array4};
返回陣列。
在B級的方法,我得到一個對象數組定義爲:我成功取回陣列
private Object outGeoObj[] = new Object[4];
,但我要清除的對象之前,我再次使用它。我試過:
public void ClearValues(){
if (outGeoObj != null){
outGeoObj = null;
}
else{
System.out.println("Object is null");
}
}
但它不起作用。有什麼建議麼?
最小工作示例:B
類:
public class MainFem {
private OutGeoMesh outmesh;
private Object outGeoObj[] = new Object[4]; // [0: Xmpoint, 1: Ympoint, 2: Vec, 3: numpoints]
public MainFem() {
outmesh = new OutGeoMesh();
}
public void ClearValues(){
if (outGeoObj != null){
for(int i = 0; i < outGeoObj.length; i++) {
outGeoObj[i] = null;
}
}
else{
System.out.println("Object is null");
}
} // END Method ClearValues
public void MainStart(int Xpoint[][], int Ypoint[][], int nump[], int c2, int Line[][][], DrawPanel drawPanel){
outGeoObj = outmesh.createOutGeomesh(Xpoint, Ypoint, nump, c2, Line, drawPanel);
int temp = (int[][]) outGeoObj[3];
System.out.println(temp[0][0]);
}// End Method MainStart
} // END CLASS MainFem
A類:
public class OutGeoMesh {
private double Xmpoint[][][] = new double[500][200][20];
private double Ympoint[][][] = new double[500][200][20];
private double Vec[][][] = new double[500][2][20];
private int numpoints[][] = new int[500][20];
public OutGeoMesh() {
// TODO Auto-generated constructor stub
}
public Object[] createOutGeomesh(int Xpoint[][], int Ypoint[][], int nump[], int c2, int Line[][][], DrawPanel drawPanel) {
for (int j = 0; j <= c2; j++) {
for (int i = 0; i < nump[j]; i++) {
Vec[i][0][j] = i;
Vec[i][1][j] = i+1;
Xmpoint[i][0][j] = Xpoint[i][j];
Ympoint[i][1][j] = Ypoint[i][j];
numpoints[i][j] = numpoints[i][j] + 1;
} // END FOR i
} // END FOR j
return new Object[]{Xmpoint,Ympoint,Vec,numpoints};
} // END METHOD createOutGeomesh
// ---------------------------------
} // END CLASS OutGeoMesh
從問題中看不出真正的問題_A類和B類的相互作用以及實際問題是什麼?如果您從相關類中發佈了更多代碼,這將有所幫助。 – 2015-04-05 21:21:15
你是什麼意思,它不起作用?從你的代碼顯示的內容來看,你並沒有清除這些值,你只是簡單地使'outGeoObj == null'。我認爲你想重置所有的值,所以你可以做'outGeoObj = new Object [outGeoObj.length];'。或者你可能想清除數組中的數組,所以對數組中的每個數組使用'for循環'作爲'outGeoObj',然後使用'嵌套for循環',並相應地設置它們的值。 – CoderMusgrove 2015-04-05 21:22:14
循環訪問數組,將值賦給空值? – ElDuderino 2015-04-05 21:23:59