2016-05-13 65 views
0

大家晚上好。我正在通过这种方式工作,并且在另一个班级中使用班级时遇到了阻碍。 Eclipse会告诉我这个错误是因为试图调用对一个非静态方法的静态引用。 我想要做的就是在一个程序中多次使用“反向”方法。我知道问题出现在“反向”类中,并且正在寻找正确的方式来格式化该类,以接受来自主方法中代码的输入。调用数组运算符

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; 
     } 
    } 


} 

回答

2

变化的方法声明:

static void reverse(int arr[]) 
+0

是有办法做到这一点不使其静态的?我试图从主要方法中删除“静态”,但显然不会工作。 –

+0

@JWelch使它成为'static'有什么问题?但是,您可以创建您的类的实例,然后使用该实例调用非静态方法。但为什么?那有什么意义呢?该方法不使用该类的任何*字段,为什么? – Andreas