|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2009
Messaggi: 700
|
[JAVA] Reperire un oggetto creato in un'altra classe
Ciao,
ho un problema probabilmente molto banale...è un po' di tempo che non programmo in Java ed evidentemente sono un po' arruginito... Allora ho questa classe chiamata PopolaTabella in cui sempmlicemente creo e popolo un oggetto di tipo Collection chiamato elenco. In tale classe è dichiarato il metodo getElenco() che ritorna il riferimento a tale oggetto elenco. Codice:
package managedBean;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import com.icesoft.faces.component.ext.RowSelectorEvent;
public class PopolaTabella {
PortafoglioCliente portafoglio;
Collection elenco = new ArrayList();
public PopolaTabella() {
portafoglio = new PortafoglioCliente();
portafoglio.setTipoElemento("Paperino");
portafoglio.setCodiceRapporto(11);
portafoglio.setNumeroPolizza("Topolino");
portafoglio.setDescrizioneProdotto("Pluto");
portafoglio.setDescrizioneOggetto("Pippo");
portafoglio.setCodiceStato("Paperone");
portafoglio.setDataEffetto(new Date());
portafoglio.setDataScadenza(new Date());
portafoglio.setPremioLordoAnnuo(BigDecimal.valueOf(2546545.778675));
elenco.add(portafoglio);
System.out.println("COSTRUTTORE");
}
public Collection getElenco() {
return elenco;
}
public void setElenco(Collection elenco) {
this.elenco = elenco;
}
public void rowSelector(RowSelectorEvent event){
System.out.println("RowSelector");
}
public String testAction(){
System.out.println("ACTION");
return null;
}
}
Sostanzialmente io ho scritto così: Codice:
package managedBean;
import java.util.ArrayList;
import java.util.Collection;
import managedBean.PopolaTabella;
public class OperazioniTabella {
Collection elenco = new ArrayList();
public OperazioniTabella(){
elenco = PopolaTabella.getElenco();
}
}
Perchè ?!?! Cosa c'è che non và tenendolo non statico ?!?! Ho organizzato male la mia archietettura delle classi? Sostanzialmente l'applicazione dovrebbe funzionare così: la classe PopolaTabella mi riempie una tabella (in questo caso con una riga sola rappresentata dall'oggetto portafoglio, ogni campo di portafoglio rappresenta il valore di una colonna della tabella) ed un'altra tabella OperazioniTabella che si recupera la Collection rappresentante tutti i record della tabella e li và a modificare Please, help me Grazie |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Mi sa che sei sì un tantino arruginito
Devi avere sottomano un'istanza di PopolaTabella, se vuoi invocare un metodo di istanza di quella classe: Codice:
PopolaTabella pop = new PopolaTabella();
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Feb 2009
Messaggi: 700
|
Quote:
Grazie....ti spiego meglio la situazione così magari mi eviti di fare cavolate e di scrivere codice inutile... Ho la classe PopolaTabella che contiene una collezione di oggeti PortafoglioCliente (al momento uno solo). Ogni oggetto in tale collezione rappresenta una riga di una tabella (i campi dell'oggetto rappresentano le colonne della tabella). Quindi al momento ho una tabella contenente una sola riga. (Il motivo per cui uso una Collection di oggetti per rappresentare una tabella è semplice, uso IceFaces per visualizzare la tabella ed in IceFaces si fà così Ora per ogni riga della tabella devo prevedere una serie di operazioni (non sò ancora quali...me lo devono ancora dire). Una modifica su un campo della tabella di fatto consiste nel modificare un campo di un'oggetto di tale collezione. Secondo te tali operazioni mi conviene implementarle direttamente dentro la classe PopolaTabella o come stò facendo in un'altra classe OperazioniTabella che si và a reperire la collezione e ci opera sopra? Tnx |
|
|
|
|
|
|
#4 | |||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
Quote:
Ammettendo poi che, conoscendolo, io sia in grado di farlo
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|||
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2009
Messaggi: 700
|
Forse sei riuscito ad illuminarmi (madonna santa...ho studiato Java all'uni e dopo un anno che non lo tocco sono proprio messo male...)
Allora si, una riga della tabella rappresenta un'istanza di un oggetto avente tipo PortafoglioCliente, quindi i metodi che rappresentano le operazioni di modifica li vado a mettere proprio dentro la classe PortafoglioCliente perchè di fatto devono modificare un campo di un oggetto di questo tipo...quindi quì più che in altre classi o in PopolaTabella...giusto? concordo che i nomi delle classi siano orrendi, dovrò fare un po' di refactoring... IceFaces è un framework di presentazione per sviluppare applicazioni web RIA Grazie |
|
|
|
|
|
#6 | |||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Quote:
Quote:
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) |
|||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:11.




















