setPriority(priority: int): ToDoItem
setWhat(什么:字符串)的TodoItem制定者需要更新的对象,并返回一些JAVA
setWhen(时:字符串)的TodoItem
这三个制定者返回更新的对象。这与过去的正常无效版本有点不同。
这是一个数组列表
这是我的UML说什么。
我完全失去了,我不知道如何开始做一个setter返回一个更新版本的东西,我有一个想法它的for循环,但即时通讯失去了它的虚幻,任何帮助,推动我在右方向理解
setPriority(priority: int): ToDoItem
setWhat(什么:字符串)的TodoItem制定者需要更新的对象,并返回一些JAVA
setWhen(时:字符串)的TodoItem
这三个制定者返回更新的对象。这与过去的正常无效版本有点不同。
这是一个数组列表
这是我的UML说什么。
我完全失去了,我不知道如何开始做一个setter返回一个更新版本的东西,我有一个想法它的for循环,但即时通讯失去了它的虚幻,任何帮助,推动我在右方向理解
你的UML似乎是基于fluent interface中,一般会return this;
像
public ToDoItem setPriority(int priority) {
this.priority = priority;
return this;
}
这个想法是,呼叫者可随后链方法调用。
ToDoItem a = new ToDoItem().setPriority(10).setWhat("what").setWhen("right now");
如果我理解你的权利,你说的是一口流利的API:
class ToDoItem{
private int priority;
private String what;
private String when;
public ToDoItem setPriority(int priority) {
this.priority = priority;
return this;
}
public ToDoItem setWhen(String when) {
this.when = when;
return this;
}
public ToDoItem setWhat(String what) {
this.what = what;
return this;
}
}
有3类。主要的,WeeklyToDoList和ToDoList。 ToDoList类是具有2个构造函数以及setter和getter的基本类,但是我的教授指定setters将返回对象的更新版本,您将如何更新对象并返回新版本? – MLeuck3
这正是它所做的。第一行代码更新对象,第二行返回该对象(“this”),并更新完成。 – FredK
@ MLeuck3没有“新版本”,实例没有更改 - 但是,值被更新,并返回包含该值的同一个实例。这就是为什么一个setter(或* mutator *)通常不会返回任何东西(它不会创建任何东西)。 –