2017-09-08 31 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; 
    } 
} 
相關問題