Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2007, 19:36   #1
yashi79
Member
 
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
[java]switch

devo implementare uno switch su dei messaggi, il solo problema è che il campo sul quale lo devo fare è una stringa!
lo switch mi richiede un intero...
vi spiego: ho una coda di messaggi con un determinato comportamento, che può essere, ad es, CFP, REQUEST...
a seconda di questo comportamento ho i casi
Codice:
	if(msgS!=null){	  
		performativaS =msgS.getPerformative();//ricavo qui l'oggetto su cui fare lo switch
		
		  switch (performativaS) {
		  			case REQUEST:{}
ma REQUEST è una stringa....

ragazzi...sto editando per evidenziare il codice ma son fusa....

Ultima modifica di yashi79 : 26-11-2007 alle 10:03.
yashi79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 19:52   #2
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
usa una serie di else if
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 19:59   #3
yashi79
Member
 
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
quindi devo rinunciare allo switch?
yashi79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 20:00   #4
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
A meno che tu non cambi il tipo di messaggio, ma gari usi delle cosntanti
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 20:10   #5
yashi79
Member
 
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
hi hi hi
no sono messaggi std apartenenti ad una libreria predefinita...
grazie cmq!

altre opzioni?
yashi79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 20:27   #6
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
.
__________________
http://www.tevigroup.it/

Ultima modifica di isAlreadyInUse : 25-11-2007 alle 20:39.
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 21:12   #7
mad_hhatter
Senior Member
 
L'Avatar di mad_hhatter
 
Iscritto dal: Oct 2006
Messaggi: 1105
potresti usare un dizionario per mappare le stringhe in numeri...

in ogni caso occhio con gli switch: vanno usati con attenzione se non vuoi che il codice diventi poco mantenibile... se i casi sono molti o se prevedi di doverli cambiare considera di mappare le stringhe in oggetti incaricati di gestire ciascuno un determinato messaggio
mad_hhatter è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 21:27   #8
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Mappa. Come chiavi usi i "tipi" dei messaggi e come valori un qualsiasi tipo di oggetto che corrisponda a ciò che devi fare in conseguenza di quel messaggio. In ipotesi:

class Messaggio
...public String getPerformativa()...

interface Azione
...void esegui(Messaggio m)

Codice:
public class ActionChooser {
    private HashMap<String, Azione> map = new HashMap<String, Azione>();

    public ActionChooser(Map<String, Azione> choiceMap) {
        map.putAll(choiceMap);
    }

    public void execute(Messaggio m) {
        map.get(m.getTipo()).esegui(m);
    }
}
Dopodichè non ti resta che creare le azioni, come scriveresti il codice dei "case" ma in forma di istanze di tipo Azione, es:

Codice:
//REQUEST è un'ipotetica stringa
HashMap<String, Azione> dataMap = new HashMap<String, Azione>();
dataMap.put(REQUEST, new Azione() {
    public void esegui(Messaggio m) {
        System.out.println("REQUEST!!!");
    }
});
rifilarle ad un ActionChooser:

Codice:
ActionChooser chooser = new ActioChooser(dataMap);
e decidere cosa fare con:

Codice:
actionChooser.execute(msgS);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2007, 21:47   #9
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
Quote:
ragazzi...sto editando per evidenziare il codice ma son fusa....
Usi la slash sbagliata per chiudere il tag code.

Ti propongo un'altra soluzione:
metti i casi dentro ad un ArrayList e poi fai:
Codice:
switch (tuoArrayList.indexOf(performativaS)) {
case tuoArrayList.indexOf(REQUEST):{}
case tuoArrayList.indexOf(CFP):{}
ecc...
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2007, 10:04   #10
yashi79
Member
 
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
Quote:
Originariamente inviato da wingman87 Guarda i messaggi
Usi la slash sbagliata per chiudere il tag code.

Ti propongo un'altra soluzione:
metti i casi dentro ad un ArrayList e poi fai:
Codice:
switch (tuoArrayList.indexOf(performativaS)) {
case tuoArrayList.indexOf(REQUEST):{}
case tuoArrayList.indexOf(CFP):{}
ecc...
grazie gentilissimo...mi aspettavo proprio una soluzione "liscia" del genere.
yashi79 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2007, 20:38   #11
PGI-Bis
Senior Member
 
L'Avatar di PGI-Bis
 
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
Un O(N^2) per uno switch è più lascivo che liscio.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me!
PGI-Bis è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2007, 01:10   #12
yashi79
Member
 
Iscritto dal: Apr 2007
Città: calafrica
Messaggi: 196
Quote:
Originariamente inviato da PGI-Bis Guarda i messaggi
Un O(N^2) per uno switch è più lascivo che liscio.
eh si la complessità è alta...
ma fortunatamente ho scoperto che il tipo del mio msg è un int!
quindi...grazie lo stesso a tutti, ma le stringhe sono già mappate!
yashi79 è offline   Rispondi citando il messaggio o parte di esso
Old 28-11-2007, 09:26   #13
isAlreadyInUse
Senior Member
 
L'Avatar di isAlreadyInUse
 
Iscritto dal: Sep 2007
Messaggi: 754
Tutto sto casino per niente
__________________
http://www.tevigroup.it/
isAlreadyInUse è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Segway Navimow presenta la nuova gamma d...
Xiaomi SU7 Pro: l'ispezione dopo 265.000...
Nimbus Innovation Awards 2026: le miglio...
SSD Samsung contraffatto, ma Windows e C...
Enrique Lores, CEO e presidente di HP, l...
SoftBank e Intel preparano la 'memoria d...
Il blocco dei porno per i minori è...
AMD: i nuovi processori Zen 6 saranno (i...
Ancora aumenti per le schede video Radeo...
Sonos presenta Amp Multi a ISE 2026: il ...
Una funzione esclusiva dei Pixel potrebb...
La Cina vieta ufficialmente le maniglie ...
HP e lavoro ibrido: le nuove cuffie Poly...
MSI sta lavorando a un dissipatore ottim...
27 offerte Amazon, le prime 5 in elenco ...
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: 06:16.


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