Java 调用数组运算符

Java 调用数组运算符,java,arrays,class,Java,Arrays,Class,各位晚上好。我正在努力解决这个问题,并且遇到了在另一个类中使用一个类的障碍。Eclipse通知我,该错误是试图调用对非静态方法的静态引用的结果。 我所要做的就是在一个程序中多次使用“反向”方法。我知道问题出在“reverse”类中,我希望找到正确的方法格式化该类,以接受来自main方法中代码的输入 public static void main (String [] args){ //creating a test array int [] myArray = {0, 1

各位晚上好。我正在努力解决这个问题,并且遇到了在另一个类中使用一个类的障碍。Eclipse通知我,该错误是试图调用对非静态方法的静态引用的结果。 我所要做的就是在一个程序中多次使用“反向”方法。我知道问题出在“reverse”类中,我希望找到正确的方法格式化该类,以接受来自main方法中代码的输入

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


}
publicstaticvoidmain(字符串[]args){
//创建测试数组
int[]myArray={0,1,2,3,4,5,6,7,8,9};
int[]myArrRev={9,8,7,6,5,4,3,2,1,0};
反向(myArray);
if(Arrays.equals(myArray,myArrRev))
System.out.println(“10个元素的反向工作”);
int[]myArray2={0,1,2,3,4,5,6,7,8};
int[]myArrRev2={8,7,6,5,4,3,2,1,0};
背面(myArray2);
if(Arrays.equals(myArray2,myArrRev2))
System.out.println(“9元素反向工作”);
int[]myArray3={0};
int[]myArrRev3={0};
背面(myArray3);
if(Arrays.equals(myArray3,myArrRev3))
System.out.println(“1个元素的反向工作”);
int[]myArray4={};
int[]myArrRev4={};
反面(myArray4);
if(Arrays.equals(myArray4,myArrRev4))
System.out.println(“0元素反向工作”);
}
无效反向(int arr[]){
对于(int i=0;i
将方法声明更改为:

   static void reverse( int arr[] )

将方法声明更改为:

   static void reverse( int arr[] )

有没有办法做到这一点而不使其静止?我试着从主方法中删除“static”,但这显然不起作用。@JWelch将其设置为
static
有什么问题?但是,您可以创建类的实例,然后使用该实例调用非静态方法。但是为什么呢?这有什么意义?该方法没有使用该类的任何字段,为什么?有没有一种方法可以在不使其成为静态的情况下执行此操作?我试着从主方法中删除“static”,但这显然不起作用。@JWelch将其设置为
static
有什么问题?但是,您可以创建类的实例,然后使用该实例调用非静态方法。但是为什么呢?这有什么意义?该方法没有使用该类的任何字段,为什么?