Ho qualche problema con la restituzione di oggetti e liste di oggetti. Per problema è voglio restituire un oggetto nel mio esempio uno sviluppatore ma non voglio dare il riferimento. Qual è l'approccio migliore per questo? Per prima cosa ho pensato di restituire un nuovo sviluppatore:
public Developer getDeveloper(int index){
Developer d = developers.get(index);
return new Developer(d.getName());
}
Ma questo sembra buono per oggetti semplici, ma cosa succede se ho un oggetto sviluppatore che ha un campo istanza che è anche un oggetto o un elenco?
Un'altra domanda riguarda gli elenchi. Ricambio un elenco di sviluppatori:
public List<Developer> getDeveloppers(){
return Collections.unmodifiableList(this.developers);
}
Quindi la lista ora non è modificabile, ma penso che gli oggetti non siano ... come posso restituire una lista con oggetti non modificabili?
Il codice di esempio:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Project {
private List<Developer> developers;
private String name;
public Project(){
this("DEFAULT");
}
public Project(String name){
this.setName(name);
this.developers = new ArrayList<Developer>();
}
public List<Developer> getDeveloppers(){
return Collections.unmodifiableList(this.developers);
}
public Developer getDeveloper(int index){
Developer d = developers.get(index);
return new Developer(d.getName());
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
La classe sviluppatore, nota che questo non ha oggetto istanza:
public class Developer {
private String name;
public Developer(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
L'aiuto sarebbe apprezzato! Saluti