2016-05-13 13 views
0

Guten Abend alle. Ich arbeite mich durch und habe einen Block in Bezug auf die Verwendung einer Klasse in einer anderen Klasse getroffen. Eclipse informiert mich, dass der Fehler das Ergebnis einer statischen Referenz auf eine nicht statische Methode ist. Alles, was ich versuche, ist die Methode "Reverse" mehrmals in einem Programm zu verwenden. Ich weiß, dass das Problem in der "umgekehrten" Klasse ist, und ich suche nach der richtigen Weise, die Klasse zu formatieren, um Eingabe von dem Code in der Hauptmethode zu akzeptieren.Aufruf eines Array-Operators

public static void main (String [] args){ 
     //creating a test array 
     int [] myArray = {0, 1, 2, 3, 4, 5, 6,7 ,8 ,9}; 
     int [] myArrRev = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; 
     reverse (myArray); 
     if (Arrays.equals(myArray, myArrRev)) 
     System.out.println("reverse worked for 10 elements."); 


     int [] myArray2 = {0, 1, 2, 3, 4, 5, 6,7 ,8}; 
     int [] myArrRev2 = { 8, 7, 6, 5, 4, 3, 2, 1, 0}; 
     reverse (myArray2); 
     if (Arrays.equals(myArray2, myArrRev2)) 
     System.out.println("reverse worked for 9 elements."); 


     int [] myArray3 = {0}; 
     int [] myArrRev3 = {0}; 
     reverse (myArray3); 
     if (Arrays.equals(myArray3, myArrRev3)) 
     System.out.println("reverse worked for 1 element."); 

     int [] myArray4 = {}; 
     int [] myArrRev4 = {}; 
     reverse (myArray4); 
     if (Arrays.equals(myArray4, myArrRev4)) 
     System.out.println("reverse worked for 0 elements."); 
    } 




    void reverse(int arr[]){ 
     for(int i = 0; i < arr.length/2; i++) 
     { 
     int temp = arr[i]; 
     arr[i] = arr[arr.length - i - 1]; 
     arr[arr.length - i - 1] = temp; 
     } 
    } 


} 

Antwort

2

Ändern Sie die Methode Erklärung:

static void reverse(int arr[]) 
+0

ist es eine Möglichkeit, dies es statisch, ohne zu tun? Ich habe versucht, "statisch" von der Hauptmethode zu entfernen, aber das funktioniert offensichtlich nicht. –

+0

@JWelch Was ist das Problem, wenn man es statisch macht? Aber ja, Sie können eine Instanz Ihrer Klasse erstellen und dann diese Instanz verwenden, um die nicht-statische Methode aufzurufen. Aber warum? Was ist der Sinn davon? Die Methode verwendet keine * Felder * der Klasse, also warum? – Andreas

Verwandte Themen