|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
[java] errore esecuzione metodo
Ho realizzato un programma in java.
Questa è la prima classe; Codice:
package temperatura;
import java.io.*;
public class Temperatura implements Serializable {
private String città, data;
private double temperatura;
public Temperatura(String città, String data, double temperatura) {
this.città = città;
this.data = data;
this.temperatura = temperatura;
}
public void setCittà(String città) {
this.città = città;
}
public void setData(String data) {
this.data = data;
}
public void setTemperatura(double temperatura) {
this.temperatura = temperatura;
}
public String getCittà() {
return città;
}
public String getData() {
return data;
}
public double getTemperatura() {
return temperatura;
}
}
Codice:
package temperatura;
import java.io.*;
public class Main {
public void aggiungi() {
try {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
ObjectOutputStream scrivioggetto = new ObjectOutputStream(new FileOutputStream("temperatura.dat"));
System.out.println("Dammi data: ");
String data = input.readLine();
System.out.println("Dammi temperatura: ");
String line = input.readLine();
double temperatura = Double.parseDouble(line);
System.out.println("Dammi città: ");
String città = input.readLine();
Temperatura t1 = new Temperatura(città, data, temperatura);
scrivioggetto.writeObject(t1);
scrivioggetto.close();
} catch (IOException eccezione) {
eccezione.getMessage();
} catch (Exception eccezione) {
eccezione.getMessage();
}
}
public static void main(String[] args) throws Exception {
try {
Temperatura m1 = new Temperatura();
m1.aggiungi();
ObjectInputStream leggi = new ObjectInputStream(new FileInputStream("temperature.dat"));
boolean finefile = false;
while (finefile == false) {
Temperatura t1 = (Temperatura) leggi.readObject();
if (t1 == null) {
finefile = true;
} else {
System.out.println("Città: " + t1.getCittà() + ", data: " + t1.getData());
for (int i = 0; i < t1.getTemperatura(); i++) {
System.out.print("#");
}
}
}
leggi.close();
} catch (IOException eccezione) {
eccezione.getMessage();
} catch (Exception eccezione) {
eccezione.getMessage();
}
}
}
Codice:
Temperatura m1 = new Temperatura(); m1.aggiungi(); Codice:
symbol : constructor Temperatura()
location: class temperatura.Temperatura
Temperatura m1 = new Temperatura();
symbol : method aggiungi()
location: class temperatura.Temperatura
m1.aggiungi();
Vorrei che il mio oggetto sia inizializzato con nessun valore. (nel metodo aggiungi infatti i valori li fornisco io) Grazie anticipatamente. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 1242
|
Creati un altro costruttore che non abbia bisogno di parametri.
__________________
Concertina: "I know the truth is in between the 1st and 40th drink" |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
usa il costruttore che hai già. Anzichè "new Temperatura()" scrivi:
new Temperatura(null, null, null, 0);
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Non funziona lo stesso:
Codice:
Temperatura m1 = new Temperatura(null, null, null, 0); m1.aggiungi(); Codice:
symbol : constructor Temperatura(<nulltype>,<nulltype>,<nulltype>,int) location: class temperatura.Temperatura Temperatura m1 = new Temperatura(null, null, null, 0); symbol : method aggiungi() location: class temperatura.Temperatura m1.aggiungi(); |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Sì, perché in realtà i parametri erano 3:
Codice:
new Temperatura(null, null, 0) |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Sep 2008
Messaggi: 91
|
Ok, grazie.
Ora il problema rimane questo: Codice:
symbol : method aggiungi() location: class temperatura.Temperatura m1.aggiungi(); Codice:
try {
ObjectInputStream leggi = new ObjectInputStream(new FileInputStream("temperature.dat"));
boolean finefile = false;
while (finefile == false) {
Temperatura t1 = (Temperatura) leggi.readObject();
if (t1 == null) {
finefile = true;
} else {
System.out.println("Città: " + t1.getCittà() + ", data: " + t1.getData());
for (int i = 0; i < t1.getTemperatura(); i++) {
System.out.print("#");
}
}
}
leggi.close();
} catch (IOException eccezione) {
eccezione.getMessage();
} catch (Exception eccezione) {
eccezione.getMessage();
}
Come mai? |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2780
|
Perché il metodo aggiungi è un metodo di Main, non di Temperatura. Mi dai l'impressione di non conoscere molto il linguaggio che stai utilizzando. Se è così ti consiglio di leggerti un buon libro per colmare le lacune.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:33.



















