2014-05-23 60 views
0

我得到鑄造錯誤(不能從字符串站投),我怎麼能解決這個問題,因爲我需要你使用startStation作爲其他方法的參數:如何克服這個轉換異常?

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

這裏是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; 
} 

這裏是我的getStartStation()方法:

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

請向我們展示了'Station'類的定義。理想的'getStartStation()'方法也是如此。 –

+0

請閱讀此鑄造規則http://stackoverflow.com/questions/2233902/java-rules-for-casting – LMK

回答

0

你最近的編輯顯示你的類已經有一個合適的構造函數。你的代碼更改爲:

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

,或者更簡單地說,

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

謝謝!這是有效的:-) Arrrgh在最近的半個小時裏一直在努力 – user3603183

5

只需創建一個Station目的是通過使用現有的構造函數:

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

view.getStartStation實際上是從文本字段中獲得輸入,那麼我該怎麼做呢? – user3603183

+0

所以,你必須創建一個字符串的站對象,然後(例如使用建築) – TheEwook

+0

正如我曾試圖鑄造它作爲view.getStartStation站(),但仍然得到鑄錯誤 – user3603183

1

或做站乘坐串的構造函數的參數,並創建一個基於字符串的新實例。

您也可以使用工廠來創建工作站對象。

0

不能從字符串轉換爲站

該方法的結果是一個string數據類型。嘗試創建一個新的方法將字符串轉換爲工作站數據類型。電臺不接受字符串數據類型值。

否則它不會施放它。