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 17-06-2004, 12:24   #1
petitof
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)?!!!


petitof è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 13:11   #2
thefrog
Senior Member
 
L'Avatar di thefrog
 
Iscritto dal: Feb 2003
Messaggi: 3532
Re: [JAVA] Tipo di variabile

Quote:
Originariamente inviato da petitof
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)?!!!


un array ha specificato in se stesso il tipo di oggetti che contiene...

a meno che non sia un'array di Object
thefrog è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 15:01   #3
cn73
Senior Member
 
L'Avatar di cn73
 
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.
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 15:22   #4
leomagic
Senior Member
 
L'Avatar di leomagic
 
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_
leomagic è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 15:51   #5
petitof
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...
petitof è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 16:57   #6
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
Quote:
Originariamente inviato da petitof
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...
Perche' non usi un Vector (Anziche' l'array) ed inserisci oggetti?
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.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 17:56   #7
cn73
Senior Member
 
L'Avatar di cn73
 
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...
        }
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 17-06-2004, 20:34   #8
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
Quote:
Originariamente inviato da cn73
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...
        }
Gestione eccezione incontrollata...
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2004, 09:40   #9
cn73
Senior Member
 
L'Avatar di cn73
 
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
ehhh?
cn73 è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2004, 01:39   #10
PGI
Bannato
 
L'Avatar di PGI
 
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
"se po' fa'" ma forse viene fuori un mostriciattolo.

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.
PGI è offline   Rispondi citando il messaggio o parte di esso
Old 19-06-2004, 11:50   #11
Ed_Bunker
Senior Member
 
L'Avatar di Ed_Bunker
 
Iscritto dal: Jan 2004
Città: Montignoso(MS)
Messaggi: 9485
Quote:
Originariamente inviato da PGI
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
"se po' fa'" ma forse viene fuori un mostriciattolo.

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.
Non penso che sia "pessimo stile" ma, in questo caso, il catturare e gestire esplicitamente una NumberFormatException non risolve per nulla le cose visto che, nel caso un NFE venga catturata, saprei soltanto di non avere a che fare con un numero intero (Poiche' per i decimali...) senza pero' capire cosa sia realmente l' "oggetto" (Una data ?! Altro ?!). Pertanto le cose si complicherebbero ulteriormente. Utilizzando invece una struttura che contenga oggetti (Un array di Object, un Vector o una List, come da te suggerito) (Sui quali fare il casting, dopo un controllo che individui il tipo effettivo del dato in questione) le cose si semplificano e appaiono molto piu' "pulite".

Ciao.
__________________
"Il Meglio che si possa ottenere è evitare il peggio." I.C.
Ed_Bunker è offline   Rispondi citando il messaggio o parte di esso
Old 21-06-2004, 11:18   #12
cn73
Senior Member
 
L'Avatar di cn73
 
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.
cn73 è 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...
L'intelligenza artificiale ha reso pi&ug...
L'intelligenza artificiale per lo svilup...
Il sistema di verifica dell'identit&agra...
Ora è ufficiale: Samsung sta per ...
Motorola Edge 70 Fusion: ecco le specifi...
8TB a meno di 170€: il richiestissimo Ha...
Il nuovo MacBook 'low cost' arriver&agra...
Pokémon Rosso Fuoco e Verde Fogli...
Risparmiare con le offerte Amazon: weeke...
Gli Xiaomi 17 arrivano a fine febbraio, ...
48.000 Pa a poco più di 100€: la ...
PC più potente, meno spesa: su Amazon to...
Con 2 acquisti si ottiene il 40% di scon...
Blocco VPN in Spagna durante le partite ...
ECOVACS DEEBOT T30C OMNI GEN2 torna a 34...
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: 04:31.


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