编译后,我得到错误找不到符号 - 方法添加(java.lang.String)。到目前为止,代码的目标只是为ArrayList
添加新的味道。我正在使用BlueJ IDE,我知道这是可怕的!
import java.util.ArrayList;
public class IceCream
{
// stores ice cream flavours.
private ArrayList<String> flavours;
/**
* Constructor for objects of class IceCream
*/
public IceCream()
{
// initialise instance variables
flavours = new ArrayList<String>();
}
/**
* Method to add a flavour to the list.
*/
public void newFlavour(String flavours)
{
flavours.add(flavours);
}
}
答案 0 :(得分:2)
您将String参数命名为等于属性的名称(flavor),因此编译器会尝试在String类中查找add()方法(该方法不可用)。更改代码如:
public void newFlavour(String flavours)
{
this.flavours.add(flavours);
}
或使用不同的名称。
答案 1 :(得分:1)
查看代码:
public void newFlavour(String flavours)
{
flavours.add(flavours);
}
参数flavours
shadowing是您的字段flavours
,因此编译器正在尝试在add
中找到String
方法,而不是ArrayList
}。您可以明确限定它(this.flavours.add(flavours)
),但更改参数名称会更好 。毕竟,你没有添加多种口味 - 只有一种......所以你的参数名称应该反映出来:
public void newFlavour(String flavour)
{
flavours.add(flavour);
}
也可能将方法名称更改为addFlavour
。