Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-03-2011, 10: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, 11: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, 11: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, 11: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, 11: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, 11: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


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Intel brevetta XBM: la nuova memoria pun...
Film prodotti con l'IA: Disney, insieme ...
Reinstallare Windows senza chiavette o s...
Apple racconta il suo vantaggio nell'AI ...
Cisco Cloud Control, una cabina di regia...
Il software che controlla le Fab va in p...
Il settore tech è il primo bersag...
Windows 11, corretto un bug che poteva o...
X introduce nuove funzioni per i video c...
Blue Origin sta costruendo diversi lande...
DeepSeek avvia lo sviluppo di un chip pr...
Le offerte migliori ora su Amazon sugli ...
Fino a un petabit al secondo! Il piano d...
Cisco punta tutto sull'IA: tutti i 90.00...
Intel Nova Lake riporterà il supp...
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: 20:13.


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