Java设置器,不适用于参数(void)



有没有人看到我在这里做错了什么,我得到这个错误" 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));'

setter返回void,而不是实例本身。你应该这样做

Guest alice = new Guest();
Tea tea = new Tea();
tea.setName("Roseship Tea");
tea.setSugar(false);
tea.setMilk(true);
alice.giveTea(tea);

new Tea().setName("Rosehip Tea")的返回类型是void,因为setName()没有返回任何东西。这样做:

Tea t = new Tea();
t.setName("Rosehip Tea");

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;
 }
 ....
}

最新更新