Java 将参数传递给方法不兼容的类型

Java 将参数传递给方法不兼容的类型,java,sorting,parameters,parameter-passing,Java,Sorting,Parameters,Parameter Passing,有人能告诉我我没看到什么吗。 从书本上练习。 创建一个名为SortingTest的类。在其中,创建一个方法,该方法接受int值数组作为参数,并将排序的元素打印到终端。首先是最小的元素 在尝试编译时,我遇到了一个错误:不兼容的类型。 AbcArray无法转换为int[] 据我所知,我正在将int[]值传递给一个需要int[]值的方法。如果我的错误如此明显,我道歉,我仍在学习 public class AbcArray { private int[] myArray; public

有人能告诉我我没看到什么吗。 从书本上练习。 创建一个名为SortingTest的类。在其中,创建一个方法,该方法接受int值数组作为参数,并将排序的元素打印到终端。首先是最小的元素

在尝试编译时,我遇到了一个错误:不兼容的类型。 AbcArray无法转换为int[] 据我所知,我正在将int[]值传递给一个需要int[]值的方法。如果我的错误如此明显,我道歉,我仍在学习

public class AbcArray {

   private int[] myArray;

   public AbcArray(){
     myArray = new int[]{55,58,57,54,56};
   }

   public int[] theValues(){
     return myArray;
   }
}

代码的第一个问题是AbcArray代码中的构造函数错误。你需要更换

public ArraysData(){
    myArray = new int[]{55,58,57,54,56};
}

下一步是缺少您没有发布的代码。让我们假设它如下所示:

public class Main{
    public static void main(String[] args){
        AbcArray a = new AbcArray();
        SortingTest st = new SortingTest();

        st.sortArray(a);
    }
}
尝试生成此代码会导致实际参数AbcArray无法通过方法调用转换转换为int[]。这是因为您正在将整个类AbcArray传递给方法SORTARAY,以修复您需要从AbcArray传递值的问题,这些值可以通过使用方法theValues获得。因此,您的代码如下所示:

public class Main{
    public static void main(String[] args){
        AbcArray a = new AbcArray();
        SortingTest st = new SortingTest();

        st.sortArray(a.theValues());
    }
}

此外,您不能将数组打印到标准输出中。在打印任何内容之前,请先查看Arrays.toString方法

你的代码中没有调用Sortaray。找不到主线?@Adrian,我在用BlueJIDE@RyanG这不是问题所在。你说我正在将一个int[]值传递给一个需要int[]值的方法-你在哪里这样做?您没有发布主方法。@f1sh BlueJ项目没有主方法。他是手动操作的。@tombluej只是一个IDE,当然他需要一个主方法来运行整个过程。他是干什么的?在哪里?@f1sh因为这个答案也断言,OP需要一个主方法,这是错误的。如果他删除了,我会删除我的投票,因为其他的东西是正确的。
public class Main{
    public static void main(String[] args){
        AbcArray a = new AbcArray();
        SortingTest st = new SortingTest();

        st.sortArray(a);
    }
}
public class Main{
    public static void main(String[] args){
        AbcArray a = new AbcArray();
        SortingTest st = new SortingTest();

        st.sortArray(a.theValues());
    }
}