错误:不兼容的类型int []无法转换为int [] []

时间:2015-07-15 22:07:10

标签: java

我不明白为什么我无法编译我的代码。我得到两个错误,这意味着同样的事情。但是,当我在其他方法中做同样的事情时没有错误。任何帮助或建议将不胜感激。我只用java工作了大约一年,所以我有很多东西要学习。

错误:

method doThings in class Main cannot be applied to given types;
doThings(obj.getStuff());
^

incompatible types int[] cannot be converted to int[][]
int[][] s = o.getStuff();
                      ^

编辑:我发布的原始代码段实际上没有错误,所以这里是完整的代码

主要:pastebin.com/Rp85vCUT 更多课程:pastebin.com/EzPyUvn2

2 个答案:

答案 0 :(得分:0)

在主要课程中,您有object obj = new Object();。它应该是object obj = new object();

你还在主方法doThings(obj.getStuff());

中遗漏了一个分号

答案 1 :(得分:0)

修改下一个代码:

class object {
    private int[][] s;

    public object() {
        // TODO Auto-generated constructor stub
    }

    public object(int[][] s) {
        super();
        this.s = s;
    }

    public int[][] getStuff() {
        return s;
    }

    public void doSomething(int[][] stuff) {
        // TODO Auto-generated method stub

    }
}

public class Main {
    public static void main(String[] args) {
        object obj = new object();
        doThings(obj.getStuff());
    }

    public static int[][] doThings(int[][] s) {
        // doing things
        return s;
    }

    public void doMoreThings(object o) {
        int[][] s = o.getStuff();
    }

    public object doOtherThings(object o) { // no errors, yet
        o.doSomething(o.getStuff());
        return new object(o.getStuff());
    }
}

问题是下一个:

  1. 您需要两个构造函数,因为您以两种方式创建对象。
  2. 用新对象替换新的Object(),因为Object是另一个已经存在的类。
  3. doThings方法设为静态。
  4. 在对象类中添加缺少的doSomething方法。
  5. 您在主要方法doThings(obj.getStuff());
  6. 中缺少分号