我试图将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;
吗?