2014-05-23 4 views
0

Je reçois une erreur de casting (ne peut pas lancer de chaîne à la station), comment pourrais-je surmonter ce problème, comme je l'aurai besoin que vous utilisez startStation comme paramètre dans d'autres méthodes:Comment surmonter cette exception d'incantation?

Station startStation; 
startStation = (Station)(view.getStartStation()); 

Voici la classe Station :

public class Station { 

// The name of the station. 
private String name; 

public Station(String name) { 
    if (name == null) { 
     throw new NullPointerException(
       "The name of a station may not be null"); 
    } 
    this.name = name; 
} 

Voici ma méthode getStartStation():

public String getStartStation() { 
    return startStation.getText(); 
} 
+0

S'il vous plaît nous montrer la définition de la classe 'Station'. Et idéalement, la méthode 'getStartStation()' aussi. –

+0

Veuillez lire ce Règlement de Casting http://stackoverflow.com/questions/2233902/java-rules-for-casting – LMK

Répondre

0

Votre dernière modification indique que votre classe a déjà un constructeur approprié. Changer votre code:

Station startStation; 
startStation = new Station(view.getStartStation()); 

ou, plus simplement,

Station startStation = new Station(view.getStartStation()); 
+0

MERCI! Cela fonctionne :-) Arrrgh fait ma tête depuis une demi-heure – user3603183

5

Il suffit de créer un Station objet en utilisant le constructeur existant:

Station startStation = new Station(view.getStartStation()); 
+0

view.getStartStation reçoit réellement une entrée d'un champ de texte, alors comment y arriverais-je? – user3603183

+0

Donc vous devez créer un objet Station à partir d'une chaîne puis (en utilisant une construction par exemple) – TheEwook

+0

Comme j'ai essayé de le lancer comme une station dans view.getStartStation() mais toujours obtenir l'erreur de distribution – user3603183

1

Ou faire la station d'argument constructeur de chaîne, et de créer une nouvelle instance basée sur la chaîne.

Vous pouvez également utiliser une usine pour la création d'objets de station.

0

ne peut pas lancer de chaîne à la station

Le résultat de cette méthode est un type de données string. Essayez de créer une nouvelle méthode pour convertir la chaîne en type de données Station. La station n'accepte pas les valeurs de type de données String.

Sinon, il ne le lancera pas.

Questions connexes