2012-10-13 21 views
2

你好我寫一個飛鏢應用程序,我正在錯誤類型「屏幕」的子類型:真的令人困惑的錯誤:類型「屏幕」是不是「函數結果」

type 'Screen' is not a subtype of type 'Screen' of 'function result'. 

我硬是沒想法是什麼實際的錯誤是?

我的代碼如下:

class CanvasManager { 
    Map<String, Screen> _canvases = new Map<String, Screen>(); 
    CanvasManager (Map<String, CanvasElement> reqCanvas, int sizeX, int sizeY, bool fullscreen) { 
    reqCanvas.forEach((k,v) { 
     _canvases[k] = new Screen.create(v, sizeX, sizeY, fullscreen); 
    }); 
    } 
    Screen getCanvas(String c) { 
    if (_canvases.containsKey(c)) { 
    return _canvases[c]; 
    } 
    else throw "No such canvas with key ${c}"; 
    } 
} 

出於某種原因,當我實例類我得到的錯誤。

只是要注意Screen是我也創建了一個類。由於我完全受不了,所以我不知道它是否也會幫助你爲你提供這門課程。它有點長,所以我會粘貼它:http://pastebin.com/KvZ54yPe

+0

只是再次運行它......沒有改變任何東西,現在它有一個新的錯誤:'type'HashMapImplementation '不是'_canvases @ 0x1644befe'類型'Map '的子類型, 。 –

回答

6

修復它!

屏幕已經是dart:html中的類名。編譯器真的應該告訴你,如果你重用了某種類型的警告,但它沒有。

+1

考慮提交一份錯誤報告,要求提供更好的錯誤消息:http://dartbug.com/new –

+1

凱凱說。另外,你在哪裏定義了你的屏幕?庫有自己的範圍,所以如果屏幕被定義在與上面的代碼相同的庫中,它應該會影響html.Screen。如果您要導入html和定義屏幕的庫,那麼您應該希望在導入重複名稱時看到一些錯誤。 –

+0

是的,請點擊編輯器中的「發送反饋」按鈕。它應該幫助你在這裏。 –