763
763

Reputation: 1683

Dart Abstract Class Method with @required optimal parameters

How to use @required annotion in abstract class? There is no error on SubjectVM.dart. I want it to be @required automatic

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
  }

}

There is no error message for SubjectVM. I can use without parameters, but i dont want it

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

I want use it with @reqiured named parameters.I can do this if i add to @required annotions to SubjectVM.updateSubject. But its manual way.Any suggestions?

Upvotes: 1

Views: 1286

Answers (1)

Aleksandr Denisov
Aleksandr Denisov

Reputation: 221

Your @required annotations are related to SubjectBase class, not to SubjectVM. If you need these annotations to work, you need to execute a method of SubjectBase. This class is abstract and doesn't have an implementation, but you can use the implementation of a child.

Try this:

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

Upvotes: 2

Related Questions