PDA

Visualizza la versione completa : [Java]Metodo che non restituisce valore


--LO--
10-07-2003, 18:46
Probabilmente vi sembrerà una domanda stupida, ma capitemi, è tutto oggi che sto lavorando a questa cosa e mi sto perdendo in mezzo a tutte le righe di codice.

Allora:
io ho un file Record.java con il seguente codice:

-------------------------------------------------------------
package agenda;

import java.io.Serializable;
import java.util.*;

public class Record implements java.io.Serializable, Comparable
{
private String data = "";
private String ora = "";
private String luogo = "";
private String oggetto = "";
private String note= "";

/**
* Costruttore di default
*/
public Record()
{
}

/**
* Costruttore che conta i record nella collezione.
* E' il primo record a essere scritto nel file di output
*/
public Record (int lenght)
{

}

public Record(String data)
{
this.data = data;
}

/**
* Costruttore con data, ora, luogo, oggetto e note.
*/
public Record(String data, String ora, String luogo, String oggetto, String note)
{
this.data = data;
this.ora = ora;
this.luogo = luogo;
this.oggetto= oggetto;
this.note = note;
}


public String get_info(int selection)
{
if (selection == 0)
return this.data;

if (selection == 1)
return this.ora;

if (selection == 2)
return this.luogo;

if (selection == 3)
return this.oggetto;

if (selection == 4)
return this.note;
}

public void replace_info(String string, int selection)
{ if (selection == 0)
this.data = string;
if (selection == 1)
this.ora = string;
if (selection == 2)
this.luogo = string;
if (selection == 3)
this.oggetto = string;
if (selection == 4)
this.note = string;
}

public String getData()
{
return this.data;
}
public String getOra()
{ return this.ora;
}
public String getLuogo()
{ return this.luogo;
}
public String getOggetto()
{ return this.oggetto;
}
public String getNote()
{ return this.note;
}
public void replaceData(String data)
{ this.data = data;
}
public void replaceOra(String ora)
{ this.ora = ora;
}
public void replaceLuogo(String luogo)
{ this.luogo = luogo;
}
public void replaceOggetto(String oggetto)
{ this.oggetto = oggetto;
}
public void replaceNote(String note)
{ this.note = note;
}
public String toString()
{ return this.data;
}

//Implementazione di Compare per l'ordinamento. (da correggere)


public static int compare_data(Record rec1, Record rec2)
{ int lastComp = rec1.data.compareTo(rec2.data);
return lastComp;
}

public static int compare_ora(Record rec1, Record rec2) {
int lastComp = rec1.ora.compareTo(rec2.ora);
return lastComp;
}

public static int compare_luogo(Record rec1, Record rec2)
{
int lastComp = rec1.luogo.compareTo(rec2.luogo);
return lastComp;
}

public static int compare_oggetto(Record rec1, Record rec2) {
int lastComp = rec1.oggetto.compareTo(rec2.oggetto);
return lastComp;
}

public int compareTo(Object other)
{
return compare_oggetto(this, (Record) other);
}


}
--------------------------------------------------------------
Ora io ho un problema col metodo get_info che mi da errore. Il compilatore mi segnala che il metodo non restituisce un valore.
Cosa può essere?
:aiuto!:

Sergio Pedone
10-07-2003, 18:54
Originariamente inviato da --LO--
public String get_info(int selection)
{
if (selection == 0)
return this.data;

if (selection == 1)
return this.ora;

if (selection == 2)
return this.luogo;

if (selection == 3)
return this.oggetto;

if (selection == 4)
return this.note;
}

Il tuo metodo deve restituire un'oggetto String. Ma prova un po' ad immaginare cosa succede se gli passi un intero il cui valore è < 0 oppure > 4 ?
Ecco perchè il compilatore ti segnale l'errore. Potresti aggiungere un ultima opzione in un blocco else oppure riscrivere il metodo.

Ciao.

--LO--
10-07-2003, 19:00
Originariamente inviato da Sergio Pedone
Il tuo metodo deve restituire un'oggetto String. Ma prova un po' ad immaginare cosa succede se gli passi un intero il cui valore è < 0 oppure > 4 ?
Ecco perchè il compilatore ti segnale l'errore. Potresti aggiungere un ultima opzione in un blocco else oppure riscrivere il metodo.

Ciao.
quale opzione?:)

Sergio Pedone
10-07-2003, 23:31
tanto per dirne una:


...
else {
return "Errore";
}
...


Chiamando il metodo in questione, potresti verificare il valore dell'oggetto String restituito e fare le dovute scelte.
Meglio ancora gestire l'eventualità di un errore lancianto un'eccezione.

Secondo me. Ciao.

--LO--
11-07-2003, 11:01
Originariamente inviato da Sergio Pedone
tanto per dirne una:


...
else {
return "Errore";
}
...


Chiamando il metodo in questione, potresti verificare il valore dell'oggetto String restituito e fare le dovute scelte.
Meglio ancora gestire l'eventualità di un errore lancianto un'eccezione.

Secondo me. Ciao.
:)
ci avevo già pensato:)

sapete, a mente fresca...:D

grazie mille comunque

Loading