|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
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:
Codice PHP:
|
|
|
|
|
|
#2 |
|
Senior Member
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. |
|
|
|
|
|
#3 |
|
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...
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
Come ho detto sopra, posta tutto il codice della classe (magari ordinatamente identato Arguisco che non utilizzi un'IDE che ti segnala dinamicamente gli errori di sintassi, con che programma editi il codice? |
|
|
|
|
|
|
#5 |
|
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...
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
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) |
|
|
|
|
|
|
#7 |
|
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:
|
|
|
|
|
|
#8 | |
|
Senior Member
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:
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);
|
|
|
|
|
|
|
#9 |
|
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:
|
|
|
|
|
|
#10 |
|
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".
|
|
|
|
|
|
#11 |
|
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 |
|
|
|
|
|
#12 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 277
|
no no il problema non è quello (con la fretta non ho riscritto tutto correttamente...)
Codice PHP:
|
|
|
|
|
|
#13 |
|
Senior Member
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...
Codice:
Rubrica miaRubrica = new Rubrica(); Ciauz
__________________
iMac 27" 5K |
|
|
|
|
|
#14 |
|
Member
Iscritto dal: Dec 2007
Messaggi: 277
|
va bene cosi??
Codice PHP:
|
|
|
|
|
|
#15 |
|
Senior Member
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
}
Poi i controlli sull'input li fai quando lo richiedi... Ciauz
__________________
iMac 27" 5K |
|
|
|
|
|
#16 |
|
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??
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:51.




















