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

setWhat(:文字列どのような)何かを返す必要があるToDoItemセッターは、オブジェクトを更新し、JAVA

3つのセッターのそれぞれは、更新されたオブジェクトを返します。これは過去の通常のvoid版とは少し異なります。

これは配列リストです

これは私のUMLの言葉です。

私は完全に失われています。私はセッターに何かの更新版を返す方法についてもわかりません。私はそのループのアイデアを持っていますが、IMはその非現実を失いました。右方向はあなたのUMLがfluent interfaceに基づいているように見える

答えて

1

、あなたは一般的に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がオブジェクトの更新版を返すように指定しています。オブジェクトを更新して新しいバージョンを返す方法はありますか? – MLeuck3

+0

それはまさにそれがしていることです。コードの最初の行はオブジェクトを更新し、2番目の行はそのオブジェクト( "this")を返します。 – 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; 
    } 
} 
関連する問題