Torna indietro   Hardware Upgrade Forum > Software > Programmazione

MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2008, 15:07   #1
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
[java]aiuto controlli input

ciao a tutti sto cercando di creare dei controlli che mi permettano di intercettare dei dati fasulli (tipo dati nulli o dati troppo corti).queste sono le propieta di nominativo...
Codice PHP:
class Rubrica
{
  private 
String nome;
private 
String cognome;
private 
String indirizzo;
private 
String telefono;
private 
String affinita;

Rubrica(String Nome, String Cognome, String Indirizzo, String Telefono, String Affinita) {
try 
{
    
setNome(Nome);
    
setCognome(Cognome);
    
setIndirizzo(Indirizzo);
    
setTelefono(Telefono);
    
setAffinita(Affinita);
    }
catch (
IOException e) {
        
System.out.println(e);
       
    }
     
    catch (
InserimentoErratoException e)
 {
   
System.err.println(e);
 
 }} 
e questo è il mio metodo per intercettare gli errori...
Codice PHP:
public void setNome(String Nome)throws InserimentoErratoException, IOException {
if(
Nome.length()<4|| Nome.equals("")){
     throw new 
InserimentoErratoException();
    }
    else {
        
this.nome = Nome;
         }
}

public 
String getNome() {
    return 
nome;
} 
è solo che mi da errore sul metodo getNome() chi mi sa dire cosa sbaglio??grazie!!
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 15:12   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Che errore ti da? Se ci posti tutto il codice è più facile capire.

Considera anche che se fai un getNome() subito dopo un setNome() che "fallisce", nome sarà null e verrà sollevata una NullPointerException.


Questo perchè hai dichiarato "nome" senza inizializzarlo.
private String nome;

Se ti va bene avere nome come una stringa vuota puoi fare così:
private String nome = new String();

Se, invece, come vedo nell'if in setNome() è proprio un caso che vuoi evitare allora
potresti inizializzarlo a un valore "senza senso", tipo:
private String nome = "not defined";

Ultima modifica di banryu79 : 24-01-2008 alle 15:21.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 15:30   #3
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
guarda mi da illegal start of expression sul metodo getnome()sinceramente non capisco cosa sbaglio...io vorrei proprio evitare che mi vengano dati in input certi dati...
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 15:38   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da misterxxitalia Guarda i messaggi
guarda mi da illegal start of expression sul metodo getnome()sinceramente non capisco cosa sbaglio...io vorrei proprio evitare che mi vengano dati in input certi dati...
Ah, allora è un errore di compilazione, io pensavo partisse qualche eccezione a runtime...

Come ho detto sopra, posta tutto il codice della classe (magari ordinatamente identato ), ci si mette un attimo a trovare l'errore, che comunque dovrebbe essere un errore di sintassi a questo punto.

Arguisco che non utilizzi un'IDE che ti segnala dinamicamente gli errori di sintassi, con che programma editi il codice?
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 15:42   #5
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
scusa posso passarti la mia classe in privato?ci sono persone che copiano la classe completamente e la spacciano x propria...
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 16:00   #6
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da misterxxitalia Guarda i messaggi
scusa posso passarti la mia classe in privato?ci sono persone che copiano la classe completamente e la spacciano x propria...
Spiacente misterxxitalia, ma preferisco di no.

L'aiuto che sono disposto a dare lo do in pubblico, per scelta non accetto di aiutare in privato in contesti di forum pubblici.

Comunque non dovresti fare fatica a trovare l'errore: è un errore di sintassi, ma non lo rilevo nel codice che hai postato tu nel primo post.

Cmq, visto che l'illegal start of expression te la da sul metodo getNome(), vai a vedere cosa hai scritto nel codice della classe sulle righe subito prima della definizione di getNome(): il problema è là (magari hai chiuso male il metodo precedente, manca una parentesi graffa di chiusura o roba del genere)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 16:11   #7
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
ecco infatti il problema è che avevo chiuso male!!mi perdo sempre sulle stupidagini!!
ora quando vado a usare quel metodo scrivo cosi':
Codice PHP:
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
System.out.println("dammi il nome:");
     
System.out.println("==>");
     
String Nome = tastiera.readLine();
     
Rubrica.setNome(Nome); 
su Rubrica.setNome(Nome) mi da come errore cannot be referenced from a static contest..questo che vuol dire??
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 16:52   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Scusa ma come fai a chiamare il metodo setNome() in quel modo?

quando fai Rubrica.setNome() stai tentando di invocare setNome() dal nome della classe, ma perchè ciò sia possibile setNome() deve essere dichiarato static, cosa che da te vedo non è.

Altrimenti devi usare un'istanza della classe, non la classe stessa, per invocare il metodo:

Codice:
Rubrica miaRubrica  = new Rubrica( parametri al costruttore, bal, bla, bla);
...
miaRubrica.setNome("Arturo Bracchetti");

Piccola "nota di stile"....
Quote:
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
System.out.println("dammi il nome:");
System.out.println("==>");
String Nome = tastiera.readLine();
Rubrica.setNome(Nome);
Per convenzione (e quindi questione di leggibilità di tutti) i nomi di variabili iniziano con la lettera minuscola, così come i nomi dei metodi; solo i nomi di Classi iniziano con la maiuscola.

così:
Codice:
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
System.out.println("dammi il nome:");
     System.out.println("==>");
     String nome = tastiera.readLine();
     Rubrica.setNome( nome);
poi fai come preferisci (De gustibus), non è una critica, solo un consiglio.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 17:14   #9
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
tutti i consigli e critiche sono ben accette!!scusa non capisco bene come intendi usare lo static...ora ti posto il metodo:
Codice PHP:
void aggiunginomintativo() {
Rubrica miaRubrica = new Rubrica (setNome(mionome),setCognome(miocognome),setIndirizzo(mioindirizzo),setTelefono(miotelefono),setAffinita(miaaffinita));
boolean cicla = false;
    do {
      
cicla = false;
try 
{
BufferedReader tastiera = new BufferedReader(new InputStreamReader(System.in));
System.out.println("dammi il nome:");
     
System.out.println("==>");
     
String mionome = tastiera.readLine();
     
miaRubrica.setNome(mionome);
     
System.out.println("dammi il cognome");
     
System.out.println("==>");
     
String cognome = tastiera.readLine();
     
Rubrica.setNome(miocognome);

System.out.println("dammi il recapito");
     
System.out.println("==>");
     
String recapito = tastiera.readLine();
     
Rubrica.setNome(miorecapito);
        

System.out.println("dammi il numero di telefono");
     
System.out.println("==>");
     
String telefono = tastiera.readLine();
     
Rubrica.setNome(miotelefono);
        

System.out.println("dammi il tipo di affinita; premi a per 'conoscente';b per 'amico';c per 'parente' d per 'amicone' e per 'amicissimo'");
System.out.println("==>");
 
    
miaaffinita = leggiStringa();  
    
String affinitascelta ="";  
    switch (
miaaffinita.charAt(0)) {
case 
'a':affinitascelta = "conoscente";
break;
case 
'b':affinitascelta = "amico";
break;
case 
'c':affinitascelta = "parente";
break;
case 
'd':affinitascelta = "amicone";
break;
case 
'e':affinitascelta = "amicissimo";
break;
default: 
cicla = true;

                                    }

if (!(
nominativi.contains(x)))nominativi.add(x);
else 
System.out.println ("nominativo gia esistente!"); 
cicla = true;
}

     
     catch (
IOException e) {
        
System.out.println(e);
        
cicla = true;
    }
     catch (
StringIndexOutOfBoundsException e){
           
System.out.println(e);
           
cicla = true;
    }
    catch (
InserimentoErratoException e)
 {
   
System.err.println(e);
  
cicla = true; 
 }


}
while ( 
cicla );
}

} 
oltre a non poter essere void il metodo che sbaglio??
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 17:29   #10
Gargiulo
Member
 
Iscritto dal: May 2002
Messaggi: 84
non sono stato a leggere il codice, ma il punto è che il metodo devi chiamarlo sulla variabile miaRubrica, non sulla classe Rubrica. Per poter invocare un metodo su una classe, il metodo deve essere "statico".
Gargiulo è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 17:32   #11
Gargiulo
Member
 
Iscritto dal: May 2002
Messaggi: 84
il problema sta in queste righe:

Rubrica.setNome(miocognome);
Rubrica.setNome(miorecapito);

che sono sbagliate, devono diventare
miaRubrica.setCognome(miocognome);
miaRubrica.setRecapito(miorecapito);

occhio ai copia-incolla, e mi raccomando se un metodo non è statico non lo puoi invocare sulla classe, va invocato sull'istanza di variabile
Gargiulo è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 18:18   #12
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
no no il problema non è quello (con la fretta non ho riscritto tutto correttamente...)
Codice PHP:
void aggiunginomintativo() {
Rubrica miaRubrica = new Rubrica (setNome(mionome),setCognome(miocognome),setIndirizzo(mioindirizzo),setTelefono(miotelefono),setAffinita(miaaffinita)); 
mi dice di non trovare la variabile mionome miocognome ecc...(che dichiarerò dopo....) ma come faccio??
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 18:40   #13
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
beh ma è ovvio che non puoi passargli al costruttore di Rubrica variabili che non hai istanziato

Io direi di fare cosi:
Codice:
public class Rubrica{
public Rubrica(){//se vuoi inizializzi le variabili a null o "" o quello che ti pare
}
...metodi della rubrica...
così quando istanzi la classe fai qualcosa come:
Codice:
Rubrica miaRubrica = new Rubrica();
e poi fai tutti i set che vuoi

Ciauz
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 19:07   #14
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
va bene cosi??
Codice PHP:
class Rubrica
{
  private 
String nome;
private 
String cognome;
private 
String indirizzo;
private 
String telefono;
private 
String affinita;

public 
Rubrica(String Nome, String Cognome, String Indirizzo, String Telefono, String Affinita) {
try 
{
    
setNome(Nome);
    
setCognome(Cognome);
    
setIndirizzo(Indirizzo);
    
setTelefono(Telefono);
    
setAffinita(Affinita);
    }
catch (
IOException e) {
        
System.out.println(e);
       
    }
     
    catch (
InserimentoErratoException e)
 {
   
System.err.println(e);
 
 }} 
adesso come lo chiamo il metodo?
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 21:24   #15
Don[ITA]
Senior Member
 
L'Avatar di Don[ITA]
 
Iscritto dal: Jul 2006
Città: Bergamo
Messaggi: 401
Puoi farla così la tua Rubrica:
Codice:
public class Rubrica {
    
    private String nome;
    private String cognome;
    private String indirizzo;
    private String telefono;
    private String affinita; 
    
    public Rubrica(){
        nome = "";
        cognome = "";
        indirizzo = "";
        telefono = "";
        affinita = "";
    }
    
    public void setNome(String nome){
        this.nome = nome;
    }
    
    public String getNome(){
        return nome;
    }
    //e cosi via per tutte le variabili
  
}
Come hai scritto te nn va bene
Poi i controlli sull'input li fai quando lo richiedi...

Ciauz
__________________
iMac 27" 5K
Don[ITA] è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2008, 21:33   #16
misterxxitalia
Member
 
Iscritto dal: Dec 2007
Messaggi: 277
ho gia messo i controlli quando li chiedevo xo mi è stato fatto notare che si puo baypassare tutti i controlli e scrivere direttamente su setNome()per questo che vorrei mettere li i controlli...tu cosa ne pensi??
misterxxitalia è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
SpaceX sceglie Qualcomm per la rete 5G t...
AMD mette la freccia e si prepara allo s...
Sony Santa Monica posticipa God of War L...
Il telescopio spaziale Swift è ri...
Black Friday HONOR, prezzi giù fi...
AliExpress sfida Amazon sui prezzi: e-bi...
Gemini sotto accusa in Ungheria: per l'a...
Windows 11 può girare sulla NPU invece d...
MediaWorld diventa cinese: l'UE dice s&i...
Akamai potenzia il proprio cloud con due...
Steam, Valve cambia le regole: le revisi...
Canva licenzia (anche) per colpa dell'IA...
Axerta: l’IA traina la crescita delle te...
Galaxy A38, la batteria cresce ma il pre...
Notifica su Facebook: 'Effettuerai la mi...
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:53.


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