[英]Pass extended class of an abstract class as a parameter in flutter
我正在嘗試使用 flutter 構建一個網站,但我無法弄清楚。 這是一個抽象類。
abstract class TableBaseClass {
int getPage(BuildContext context);
void setPage(int val,BuildContext context);
int getPagination();
void setPagination(String val,BuildContext context);
void setSearch(String val,BuildContext context);
String getSearch();
dynamic getData();
List getHeaders();
List getBodyFields();
void refresh(BuildContext context);
void setSort(String header);
void setOrder(String order,BuildContext context);
String getOrder();
}
這個類正在擴展它。
class Objects extends TableBaseClass with ChangeNotifier {
這個小部件將抽象類作為參數。
class TableWidget extends StatefulWidget {
final TableBaseClass provider;
final String menuButton;
const TableWidget(this.provider,this.menuButton, {super.key});
但是當我傳遞對象類TableWidget(Objects,menuButton)
時,它給出了錯誤The argument type 'Type' can't be assigned to the parameter type 'TableBaseClass'.
提前感謝任何幫助。
因為您只是想傳遞一個類型,而不是TableBaseClass
類的實例,所以您沒有調用類構造函數,請參見:
print(TableBaseClass); // this is a type,
print(TableBaseClass.runtimeType); // Type
但是使用()
,您正在創建該類的一個實例:
print(TableBaseClass()); // this is an instance of TableBaseClass
print(TableBaseClass().runtimeType); // TableBaseClass
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.