将参数传递给方法不兼容的类型
问题描述:
有人可以告诉我什么是我没有看到。 从书中练习。 创建一个名为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;
}
}
import java.util.Arrays;
public class SortingTest{
public SortingTest() {}
public void sortArray(int[] outsideArray){
Arrays.sort(outsideArray);
System.out.println(outsideArray);
}
}
答
与您的代码第一个问题是AbcArray
代码错误的构造函数。您需要
public AbcArray(){
myArray = new int[]{55,58,57,54,56};
}
下一步缺少的代码,你没有张贴更换
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);
}
}
尝试在actual argument AbcArray cannot be converted to int[] by method invocation conversion
建立这个代码的结果。发生这种情况是因为您正在将整个类AbcArray
传递给方法sortArray
,以解决您需要传递可通过使用方法theValues()
可用的AbcArray
中的值。因此,您的代码将如下所示:
public class Main{
public static void main(String[] args){
AbcArray a = new AbcArray();
SortingTest st = new SortingTest();
st.sortArray(a.theValues());
}
}
此外,您无法将数组打印到标准输出中。在打印任何东西之前,请看Arrays.toString()
方法。
你没有在代码中调用sortArray。缺少'main'? – 2015-04-02 07:54:11
@Adrian,即时通讯使用BlueJ IDE – 2015-04-02 07:55:28
@RyanG这不是问题。你说“我将一个int []值传递给需要int []值的方法” - 你在哪里做的?你没有发布你的''main''方法。 – f1sh 2015-04-02 07:57:31