有没有人看到这里做错了什么,我得到这个错误“类型Guest中的方法giveTea不适用于参数(void),我是java +我的英语是坏的XD,所以这是什么意思。
Guest alice = new Guest();
alice.giveTea. (new Tea().setName("Roseship Tea"));
alice.giveTea. (new Tea().setSugar(false));
alice.giveTea. (new Tea().setMilk(true));'
答案 0 :(得分:1)
setter return void,而不是实例本身。你应该这样做
Guest alice = new Guest();
Tea tea = new Tea();
tea.setName("Roseship Tea");
tea.setSugar(false);
tea.setMilk(true);
alice.giveTea(tea);
答案 1 :(得分:0)
new Tea().setName("Rosehip Tea")
的返回类型为void
,因为setName()
不返回任何内容。这样做:
Tea t = new Tea();
t.setName("Rosehip Tea");
答案 2 :(得分:0)
setter方法通常具有返回类型void。方法给茶可能是茶。 您正在做的是创建一个对象并一起添加属性。您应该拆分它或创建一个立即设置一些属性的构造函数。
后者是一种好方法,因为Tea对象在创建之后应该是一个不可变对象。因此它的设计应该是这样的:
public class Tea{
private final String teatype;
private final boolean sugar;
public Tea(String pType, boolean pSugar){
teatype = pType;
sugar = pSugar;
}
public String getTeatype(){
return teatype;
}
....
}