如何在抽象类中使用@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中添加@@必填注释,则可以执行此操作。但是它是手动方式。有什么建议吗?
您需要的注释与SubjectBase类有关,与SubjectVM有关。如果需要这些注释才能工作,则需要执行SubjectBase的方法。此类是抽象的,没有实现,但是您可以使用子项的实现。
尝试一下:
SubjectBase subjectVM = SubjectVM();
subjectVM.updateSubject();