0

我开发了一个从 API 接收问题的应用程序。客户端使用built_value 进行检查。

有没有办法洗牌的对象 BuiltList<Aufgabe>fragen

这是客户应该做的。

abstract class Aufgabenbundle
    implements Built<Aufgabenbundle, AufgabenbundleBuilder> {
  String get nameDerUebung;
  String get dateiNameDerPdf;
  BuiltList<Aufgabe> get fragen; //These objects should be mixed

  Aufgabenbundle._();

  factory Aufgabenbundle([updates(AufgabenbundleBuilder b)]) = _$Aufgabenbundle;

  String toJson() {
    return json
        .encode(serializers.serializeWith(Aufgabenbundle.serializer, this));
  }

  static Aufgabenbundle fromJson(String jsonString) {
    return serializers.deserializeWith(
        Aufgabenbundle.serializer, json.decode(jsonString));
  }

  static Serializer<Aufgabenbundle> get serializer => _$aufgabenbundleSerializer;
}

abstract class Aufgabe
    implements Built<Aufgabe, AufgabeBuilder> {
  String get title;
  String get frage;
  int get schwierigkeit;
  int get antwortZeit;
  BuiltList<String> get vorgegebeneAntworten;
  int get richtigeAntwort;
  @nullable
  int get angehakteWert;

  Aufgabe._();

  factory Aufgabe([updates(AufgabeBuilder b)]) = _$Aufgabe;

  static Serializer<Aufgabe> get serializer => _$aufgabeSerializer;
}
4

1 回答 1

0

是不可变的BuiltList,所以你不能直接洗牌。与其他变异操作一样,您需要重建它。当你这样做时,你会得到一个ListBuilder实现接口的List接口,包括shuffle方法。

所以:

  var fragen = aufgabenbundle.fragen;
  var gemischteFragen = fragen.rebuild((b) => b.shuffle());
于 2020-01-15T10:43:24.627 回答