Конструктор классов: как установить класс по умолчанию в списке

class Column {
  final String columnName;
  final String dataType;

  Column({
    this.columnName,
    this.dataType
  });
}

class Table {
  final List<Column> children;
  Table({
    this.children = const <Column>[]
  });
}

main(){
  Table(
    children: 
  );
}  

Мой вопрос в том, что я хочу показать <Column>[ ] в «children:» тот же подход с Row(children: <Widget>[ ]).

а ваш вопрос ...? "How can I set a default class in a List" мало что говорит

pskink 01.12.2018 08:37

Что такое «класс по умолчанию». Какую проблему вы пытаетесь решить?

Günter Zöchbauer 01.12.2018 14:13

Как и у виджета Row, у него есть именованный дочерний конструктор, и он дает вам значение по умолчанию «<Widget> []», набирая дочерние элементы, а затем вы помещаете в него доступные виджеты. В моем случае я хочу отображать «<Column> []» по умолчанию, когда я набираю именованные дочерние элементы конструктора таблицы.

kram 02.12.2018 05:17
0
3
223
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если я получил то, чего вы хотите достичь, ваша реализация в порядке. Дело в том, что когда вы вводите конструктор Row и появляется children: <Widget>[], это то, что делает ваш редактор кода. Это не зависит от значения по умолчанию, которое вы дали этому параметру конструктора. Поэтому, если вы попытаетесь создать экземпляр своего класса Table, даже без значения параметра по умолчанию, например, в VSCode (с установленным плагином Dart), редактор предложит вам передать параметр children, и если вы нажмете Enter, чтобы принять предложение, он напечатает для вас пустой список.

Другие вопросы по теме