我试图将Shoe类型的对象添加到Shoe类型的固定数组中,但是我遇到了问题。

在addShoe方法中,我试图将Shoe类型的引用添加到sh数组中,如下所示:sh.add(s);

当我尝试运行它时,出现以下错误:

无法在数组类型Shoe []上调用add(Shoe)
Eclipse建议我将其更改为“长度”,并且没有任何意义。

我还认为我可以像这样编写addShoes方法的其他部分:

 
    public void addShoe(Shoe s) throws ShoeException
    {
        if(s.getId() < 0) {
            throw new ShoeException(s);
        }
                else {
                        if(numShoes<=10){
                            sh = Arrays.add(s, numShoes);
                            numShoes++;
                        }
                }
         }

It is just one of the ideas. Is it the correct way to do it?

 
    public class TestShoe {

public static void main(String[] args) {

    ShoeProcessor s = new Shoe();
    Shoe s1 = new Shoe(7, "Black");
    Shoe s2 = new Shoe(10, "Red");

    try {
        s.addShoe(s1);
                    s.addShoe(s2);

    }catch(ShoeException bex){
        System.out.println("Shoe Exception:  "  + bex);
    }


}
    }

public class ShoeProcessor
{
private Shoe [] sh;
private int numShoes=0;
private ShoeComparator<Shoe> sc;

public ShoeProcessor()
{
    sh = new Shoe [10];
    sc=new ShoeComparator<Shoe>();
}


public void addShoe(Shoe s) throws ShoeException
{
    if(s.getId() < 0) {
        throw new ShoeException(s);
    }
    else {
        sh.add(s);
        numShoes++;
    }
}
}




感谢您的帮助

我想补充一点,我需要使用固定大小的数组Shoe。

我也想补充一点,我不想扩展数组sh。我最多可以向其中添加Shoe类型的10个引用。这就是为什么我还要计算增加的​​鞋子数量的原因。

最佳答案

可能我缺少了一些东西:您要用sh.add(s);替换sh[numShoes]= s;吗?

08-17 08:04