|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 435
|
[JAVA] Tipo di variabile
come faccio a capire il tipo di variabile...nel senso ho un array di parametri di vario tipo........
il mio problema è che devo controllare di che tipo sono (ci sono date, interi , lon.....ecc)?!!! |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Feb 2003
Messaggi: 3532
|
Re: [JAVA] Tipo di variabile
Quote:
a meno che non sia un'array di Object
|
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Starà parlando di un Vector, un po' di fantasia
object.getClass().getName() se invece ti serve a runtime testare il tipo di un oggetto puoi usare l'operatore instanceof if(object instanceof ....) else if (object instanceof ....) .... Ultima modifica di cn73 : 17-06-2004 alle 15:03. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2002
Città: Empoli (firenze)
Messaggi: 1521
|
prenditi il dato è vedi quanto spazio occupa in memoria!
__________________
Imac 20" + iphone 4 16gb + MacBook Pro 13" Concluso affari con: bottoni,skino,semmy83,alex_ |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2004
Messaggi: 435
|
io aho un array
String parametri[]; poi eseguo lo split di alcuni parametri di una query sql stringa...Es: ..25,'ciao',2900000 ... in modo tale da avere parametri [0] = 25 parametri [1] = 'ciao' parametri [2] = 2900000 non so come fare... |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
|
Quote:
Potresti cosi' inserire: String, Integer o qualsiasi nuovo TDA da te appositamente creato, in modo da poter, di volta in volta, riconoscere il tipo dell'oggetto contenuto nel Vector facendo un semplice instanceof ?!?
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Senza stare a incasinarti se il tuo scopo è quello di distinguere se una stringa è un numero usa il metodo
Codice:
try
{
int numero = Integer.parseInt(tuaStringa);
}
catch (NumberFormatException e)
{
....//se sei qui non è un numero...
}
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
|
Quote:
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
ehhh?
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Nov 2001
Città: Verona
Messaggi: 1086
|
Caro cn, altro che un po' di fantasia, qui ci vorrebbero gli aruspici (gente che leggeva il futuro nelle evoluzioni dei volatili).
ED_bunker è lapidario con la "gestione delle eccezioni non controllate". Suppongo lo segnali come pessimo stile ("bad practice" direbbero gli assuefatti all'oltremanica), ma non lo è. Per due ragioni. Primo, perchè il fatto che taluni eventi siano segnati come eccezioni che possono anche non essere intercettate non significa che non debbano (o possano) mai esserlo. Secondo, perchè dell'eccezione cn usa un "effetto" (il trasferimento del controllo di esecuzione al blocco catch), schivando il fatto che le eccezioni dovrebbero segnalare solo eventi catastrofali: quest'ultima è per altro una linea guida più che una regola, a volte la si può ignorare, sempre nel caso in cui il codice ne risulti estremamente più sempice. Il problema è che in questo caso il codice non salta fuori più semplice. parseInt genera un'eccezione NumberFormatException anche nel caso in cui la stringa rappresenti un numero decimale o sovrabbondante per il formato intero a 32 bit. Il blocco try - catch dovrebbe quindi diventare una serie di try - catch annidati (dal piccolo al grande, per due volte). Codice:
int
long
float
double
Torniamo a petitof che, dopo aver fatto "split di alcuni parametri di una query sql stringa" si ritrova con un array di oggetti String. Quello che serve è un oggetto che sia in grado di determinare, data una stringa "s", se il testo in esso contenuto sia convertibile in un valore valido per la costruzione di un oggetto di tipo Integer Long Double Date Float [...altro] conviene usare i contenitori per i primitivi perchè, come sottolinea Ed_Bunker, puoi infilarli tutti quanti in un'unica lista. Potresti anche usare un array di Object (mi sembra che tu conosca a priori le dimensioni che dovrebbe avere), ma le liste sono enormemente più flessibili (e nel caso di liste basate su array, come ArrayList, di poco meno rapide). Come fare è interessante. La puoi pigliare in mille modi, se ho azzeccato la questione ci si può fare un pensierino. L'accendiamo? Ciao. |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
|
Quote:
Ciao.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C. |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Il suo problema è distingere numeri da altro. Se questo è il suo problema la soluzione prenetata è ottimale. Se non ha solo degli Integer, può usare ad esempio i metodi della classe Long o Double.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:31.



















