2017-09-08 29 views
0
setPriority(priority: int): ToDoItem 

setWhat(什么:字符串)的TodoItem制定者需要更新的对象,并返回一些JAVA

setWhen(时:字符串)的TodoItem

这三个制定者返回更新的对象。这与过去的正常无效版本有点不同。

这是一个数组列表

这是我的UML说什么。

我完全失去了,我不知道如何开始做一个setter返回一个更新版本的东西,我有一个想法它的for循环,但即时通讯失去了它的虚幻,任何帮助,推动我在右方向理解

回答

1

你的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"); 
+0

有3类。主要的,WeeklyToDoList和ToDoList。 ToDoList类是具有2个构造函数以及setter和getter的基本类,但是我的教授指定setters将返回对象的更新版本,您将如何更新对象并返回新版本? – MLeuck3

+0

这正是它所做的。第一行代码更新对象,第二行返回该对象(“t​​his”),并更新完成。 – FredK

+0

@ MLeuck3没有“新版本”,实例没有更改 - 但是,值被更新,并返回包含该值的同一个实例。这就是为什么一个setter(或* mutator *)通常不会返回任何东西(它不会创建任何东西)。 –

0

如果我理解你的权利,你说的是一口流利的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; 
    } 
} 
相关问题