具有@required最佳参数的飞镖抽象类方法

问题描述 投票:0回答:1

如何在抽象类中使用@required注释? SubjectVM.dart没有错误。我希望它是@required自动

import 'package:flutter/material.dart';
import 'package:todo/models/subject.dart';

abstract class SubjectBase {
  void addSubject(Subject value);
  void deleteSubject(Subject value);
  void deleteSubjectByIndex(int index);
  void updateSubject({@required Subject updatedSubject, @required int indexToReplace});
}

SubjectVM.dart

class SubjectVM implements SubjectBase {
  List<Subject> listOfSubjects = <Subject>[];

  @override
  void addSubject(Subject value) {
    // TODO: implement addSubject
  }

  @override
  void deleteSubject(Subject value) {
    // TODO: implement deleteSubject
  }

  @override
  void deleteSubjectByIndex(int index) {
    // TODO: implement deleteSubjectByIndex
  }

  @override
  void updateSubject({Subject updatedSubject, int indexToReplace}) {
    // TODO: implement updateSubject
  }

}

SubjectVM没有错误消息。我可以不使用任何参数,但我不想要它

SubjectVM subjectVM =  SubjectVM() 
subjectVM.updateSubject();

我想将其与@reqiured命名参数一起使用。如果我在SubjectVM.updateSubject中添加@@必填注释,则可以执行此操作。但是它是手动方式。有什么建议吗?

flutter dart named-parameters
1个回答
0
投票

您需要的注释与SubjectBase类有关,与SubjectVM有关。如果需要这些注释才能工作,则需要执行SubjectBase的方法。此类是抽象的,没有实现,但是您可以使用子项的实现。

尝试一下:

SubjectBase subjectVM =  SubjectVM();
subjectVM.updateSubject();
© www.soinside.com 2019 - 2024. All rights reserved.