2016-11-08 6 views
1

Klassendatei: Ich benutze 2d int array den Wert zu speichern, dann stelle ich den Setter und Getter2D-Array in Java vorbei

public class SquareMatrix implements SquareMatrixInterface{ 
    int[][] squareMatrix; 

    public int[][] getSquareMatrix() { 
     return squareMatrix; 
    } 

    public void setSquareMatrix(int[][] squareMatrix) { 
     this.squareMatrix = squareMatrix; 
    } 
} 

Schnittstelle Datei

public interface SquareMatrixInterface { 
    public int[][] getSquareMatrix(); 
    public void setSquareMatrix(int[][] squareMatrix); 
} 

Main: ich einen Wert setzen und versuchen, den Wert auf die Setter zu setzen, aber es gibt mir Fehler

public class test { 

    SquareMatrixInterface matrixA = new SquareMatrix(); 
    SquareMatrixInterface matrixB = new SquareMatrix(); 

    public static void main(String[] args) { 
     int[][] m1 = {{1,2},{3,4}}; 
     matrixA.setSquareMatrix(m1); 

    } 
} 

, warum es mir eine Fehlermeldung geben, wenn ich an die sett im Array zu passieren versuchen er wie ein 2D-Array zu übergeben, ohne Java-Bibliothek enthalten

+0

Sie bereits eine richtige Antwort haben (über statische vs nicht statisch), aber bitte geben Sie uns beim nächsten Mal eine genaue Fehlermeldung und Stacktrace. – Whome

+0

können Sie die Stack-Trace einschließen –

Antwort

3

Sie kippe Zugang nicht statisch Eigenschaften innen statischen Block .. [Es kann keine statische Verweis auf die nicht-statische Feld machen], so dass Sie benötigen, um Ihre neu zu schreiben Haupt-Methode ..

public static void main(String[] args) { 
     SquareMatrixInterface matrixA = new SquareMatrix(); 
     int[][] m1 = {{1, 2}, {3, 4}}; 
     matrixA.setSquareMatrix(m1); 
    } 

ODER

static SquareMatrixInterface matrixA = new SquareMatrix(); 

public static void main(String[] args) { 
    int[][] m1 = {{1, 2}, {3, 4}}; 
    matrixA.setSquareMatrix(m1); 
}