Hi zusammen,
ich habe mal eine Frage wie ich folgendes Problem korrekt löse:
Stellt euch vor ich habe ein Objekt:
Mir geht es jetzt um das Attribut name, welches mit einem leeren String initialisiert wird.
Greift man mittels getName() auf dieses Attribut zu und name=NULL dann kommt es zu einer NPE.
Wie vermeidet man das nun "korrekt" (wenn man das überhaupt so beantworten kann)?
Gibt es da eine Konvention?
Möglichkeiten:
1. Ich prüfe überall wo ich setName() aufrufe ob der Wert NULL ist, falls ja setze ich einen leeren String
2. Ich prüfe überall wo ich getName() aufrufe ob name=NULL, falls ja muss ich das entsprechend behandeln
3. Ich erlaube nicht das name=NULL, indem ich in der Methode setName() entsprechend ändere zu:
Welche Variante ist die beste?
Gibt es eine Konvention? Oder ist dies abhängig von der Anzahl der Aufrufe getName() bzw setName() (also was weniger aufwendig ist zu ändern)?
ich habe mal eine Frage wie ich folgendes Problem korrekt löse:
Stellt euch vor ich habe ein Objekt:
Java:
class MyObject{
String name = "";
MyObject(){
}
public setName(String aName){
name=aName;
}
public getName(){
return name;
}
}
Mir geht es jetzt um das Attribut name, welches mit einem leeren String initialisiert wird.
Greift man mittels getName() auf dieses Attribut zu und name=NULL dann kommt es zu einer NPE.
Wie vermeidet man das nun "korrekt" (wenn man das überhaupt so beantworten kann)?
Gibt es da eine Konvention?
Möglichkeiten:
1. Ich prüfe überall wo ich setName() aufrufe ob der Wert NULL ist, falls ja setze ich einen leeren String
2. Ich prüfe überall wo ich getName() aufrufe ob name=NULL, falls ja muss ich das entsprechend behandeln
3. Ich erlaube nicht das name=NULL, indem ich in der Methode setName() entsprechend ändere zu:
Java:
public setName(String aName){
if(aName==NULL){
name="";
}else[
name=aName;
}
}
Welche Variante ist die beste?
Gibt es eine Konvention? Oder ist dies abhängig von der Anzahl der Aufrufe getName() bzw setName() (also was weniger aufwendig ist zu ändern)?
Zuletzt bearbeitet von einem Moderator: