我對 Dart 的語法有疑問。我希望能夠在泛型類上使用建構式。所以我讓泛型類擴展一個具有指定建構式的抽象類。但是代碼仍然告訴我它不起作用。有人有想法嗎?
T fetchItem<T extends JsonModel>(){
return T.fromJson();
// This line shows the error
// The method 'fromJson' isn't defined for the type 'Type'.
}
abstract class JsonModel {
JsonModel.fromJson();
}
以下解決方案有效,但我認為它非常難看:
T fetchItem<T extends JsonModel<T>>(T t){
return t.fromJson();
}
abstract class JsonModel<T> {
T fromJson();
}
uj5u.com熱心網友回復:
建構式不被繼承。僅僅因為基類具有特定的建構式,并不意味著派生類具有該建構式。
它與泛型沒有任何關系。如果你從你的 JsonModel 擴展了一個類 X,它根本就沒有那個名字的建構式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/488082.html
