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

setWhat (ce qui: String): ToDoItemsetter a besoin de mettre à jour l'objet et revenir quelque chose JAVA

setWhen (lorsque: String): ToDoItem

Chacun des trois poseurs retourne l'objet mis à jour. C'est un peu différent des versions vides normales du passé.

Ceci est une liste Array

ce que dit mon UML.

Je suis complètement perdu, je ne sais pas comment même commencer à faire un setter retourner une version mise à jour de quelque chose, j'ai une idée c'est une boucle pour mais j'ai tellement perdu son irréel, toute aide pour me pousser dans le direction est apprécié

Répondre

1

Votre UML semble être basé sur un fluent interface, vous le feriez habituellement return this; comme

public ToDoItem setPriority(int priority) { 
    this.priority = priority; 
    return this; 
} 

L'idée étant que l'appelant peut alors invocations de méthode de la chaîne.

ToDoItem a = new ToDoItem().setPriority(10).setWhat("what").setWhen("right now"); 
+0

Il y a 3 classes. Un principal, WeeklyToDoList et ToDoList. La classe ToDoList est la classe de base avec 2 constructeurs et les setters et getters, mais mon professeur spécifie que les setters doivent retourner une version mise à jour de l'objet, serait votre façon de le faire mettre à jour mon objet et revenir la nouvelle version? – MLeuck3

+0

C'est exactement ce que ça fait. La première ligne de code met à jour l'objet et la seconde ligne renvoie cet objet ("this"), avec les mises à jour effectuées. – FredK

+0

@ MLeuck3 Il n'y a pas de "nouvelle version", l'instance ne change pas - mais oui, la valeur est mise à jour et la même instance qui contient cette valeur est retournée. C'est pourquoi un setter (ou * mutator *) ne renvoie normalement rien (il ne crée rien). –

0

Si je vous comprends bien, vous parlez couramment 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; 
    } 
}