返回ArrayList时出错 - 方法返回的不兼容类型(初学者)

时间:2014-03-07 03:38:37

标签: java interface

这是我的代码。我面临的问题是,我想返回一个整数序列,我计划使用整数的ArrayList。以下是我的类,它正在实现名为IntSequence的接口。

import java.util.*;
public class IntArray implements IntSequence {

int[] a;

public IntArray(int size) {
    a = new int[size];
}

@Override
public int length() {
    return a.length;


}

@Override
public int get(int index) {

    int use = this.a[index];
    return use;
}

@Override
public void set(int index, int value) {
    this.a[index] = value;
}



@Override
public IntSequence subSequence(int index, int size) {
    ArrayList<Integer> valuelist = new ArrayList<>();
    for(int i = a1; i <= a2 + a1; i++)
    {
        if((a1 + a2) <= a.length)
            valuelist.add(a[i]);
    }
    IntArray cObject = new IntArray(size);



    return new IntSequence() {

        @Override
        public int length() {
            return a.length;

            // TODO Auto-generated method stub
        }

        @Override
        public int get(int index) {
            return null;

            // TODO Auto-generated method stub

        }

        @Override
        public void set(int index, int value) {
            // TODO Auto-generated method stub

        }

        @Override
        public IntSequence  subSequence(int index, int size) {
            return  (IntSequence) valuelist;
        }
    };
}
}

这是我的IntSequence界面 -

public interface IntSequence {

    int length();

    int get(int index);

    void set(int index, int value);

    IntSequence subSequence(int index, int size);
}

问题 - 我在subSequence中返回的是一个ArrayList,它是一个不可复制的类型,可以为该方法返回。我是一个乞丐,老实说,不知道如何解决这个问题。 (我不允许更改方法的参数,但仍设法做到这一点。)

提前感谢您花时间看这个我真的很感激!

1 个答案:

答案 0 :(得分:1)

您正在尝试返回ArrayList,而不是新的IntArray。

不要使用ArrayList。创建

    IntArray cObject = new IntArray(size);

然后将值设置为该值。我会把这一点留给你:)

然后只是......(不需要那个内联类)

    return cObject;