Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-03-2011, 11:55   #1
e-commerce84
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;
	}
	
}
Poi ho una seconsa classe chiamata OperazioniTabella che deve recuperare l'oggetto elenco creato e popolato nella classe PopolaTabella e farci delle operazioni sopra che devo ancora definire...

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();
		
	}

}
Dichiaro un nuovo oggetto elenco di tipo Collection e lo costruisco. poi nel costruttore di tale classe faccio in modo che dentro elenco ci sia il riferimento all'oggetto precedentemente creato nella classe PopolaTabella...ma...Eclipse mi segna errore e dice che devo far diventare statico il metodo 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
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 12:00   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
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();
Quindi invochi getElenco() sulla tua istanza pop...
__________________

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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 12:12   #3
e-commerce84
Senior Member
 
Iscritto dal: Feb 2009
Messaggi: 700
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
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();
Quindi invochi getElenco() sulla tua istanza pop...
Ok...questo non è essere arruginiti...è essere rincojoniti !!!

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
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 12:26   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
(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ì )
Non conosco IceFaces, ma posso capire la neccessità di rappresentare una tabella come una collezione di "value objects".

Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
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.
Se per ogni riga della tabella devi prevedere una serie di operazioni, ed una riga della tabella è rappresentabile con un istanza di PortafoglioCliente, allora è come dire che ci saranno delle operazioni da eseguire su un PortafoglioCliente.

Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
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?
Posto che i nomi delle classi PopolaTabella ed OperazioniTabella sembravo significare delle azioni (popola, una azione specifica) e un oggetto/ente (operazioni, una raccolta di azioni) direi che la risposta alla tua domanda è un bel: dipende. Dipende dal resto dello scenario in cui ti trovi ad operarare, e che non sono in grado di valutare.
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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 12:33   #5
e-commerce84
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
e-commerce84 è offline   Rispondi citando il messaggio o parte di esso
Old 09-03-2011, 12:48   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
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?
E' il ragionamento che ho fatto io, senza considerare altre relazioni/interazioni con l'ambiente in cui si trova, sapendo solo che serve a mappare il contenuto di una riga di una tabella.

Quote:
Originariamente inviato da e-commerce84 Guarda i messaggi
concordo che i nomi delle classi siano orrendi, dovrò fare un po' di refactoring...
Però io non ho detto che i nomi sono orrendi.

Quote:
IceFaces è un framework di presentazione per sviluppare applicazioni web RIA
Bon, lato web non so una ceppa
__________________

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)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Chi vincerà il Festival di Sanrem...
G42 e Cerebras portano in India un super...
Offerte aggiornate del weekend Amazon: 7...
4 MacBook Air in offerta e scende a 939€...
Chrome cambia il tuo modo di lavorare: o...
Minimo storico iPhone 17 su Amazon: 909€...
USA, incriminati tre ingegneri della Sil...
Xbox: Phil Spencer lascia dopo 38 anni, ...
Cuffie e sostanze chimiche: uno studio e...
Terremoto sui dazi USA: la Corte Suprema...
Arianespace potrebbe lanciare il primo r...
Google Pixel 10a disponibile al prezzo m...
Microsoft Copilot nei guai: email riserv...
AOC a 399€ su Amazon: QD-OLED 240 Hz e 0...
La Cina ha recuperato dal mare il primo ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v