【问题标题】:dart - interfaces with propertiesdart - 具有属性的接口
【发布时间】:2021-01-29 02:36:00
【问题描述】:

dart 我怎么做不到?

abstract class IUserDto {
  String id;
  String firstName;
  String lastName;
  String email;
}

class UserLogicItem implements IUserDto {
  UserLogicItem({this.id, this.firstName, this.lastName, this.email});
  @override
  final String id;
  @override
  final String firstName;
  @override
  final String lastName;
  @override
  final String email;
}

我收到此错误:

缺少“setter IUserDto.email”、“setter”的具体实现 IUserDto.firstName'、'setter IUserDto.id' 和 'setter IUserDto.lastName'。尝试实现缺少的方法,或使 class abstract.dart(non_abstract_class_inherits_abstract_member)

但我想创建一个类契约,其中具体类必须具有这些属性。

【问题讨论】:

    标签: flutter dart


    【解决方案1】:
    class UserLogicItem implements IUserDto {
      UserLogicItem({this.id, this.firstName, this.lastName, this.email});
    
      @override
      String email;
    
      @override
      String firstName;
    
      @override
      String id;
    
      @override
      String lastName;
     
    }
    

    【讨论】:

    • 我想不到这个。好的。另外,请在答案中添加一些细节。
    【解决方案2】:

    UserLogicItem 中添加缺少的设置器,它将解决此问题。您可以按Ctrl + Enter 快速添加缺失的覆盖或使用类中的Ctrl + O 来检查缺失的覆盖。

    class UserLogicItem implements IUserDto {
      UserLogicItem({this.id, this.firstName, this.lastName, this.email});
      @override
      final String id;
      @override
      final String firstName;
      @override
      final String lastName;
      @override
      final String email;
    
      @override
      void set email(String _email) {
        // TODO: implement email
      }
    
      @override
      void set firstName(String _firstName) {
        // TODO: implement firstName
      }
    
      @override
      void set id(String _id) {
        // TODO: implement id
      }
    
      @override
      void set lastName(String _lastName) {
        // TODO: implement lastName
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2023-01-01
      • 2012-05-08
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 2019-12-06
      • 2021-09-26
      • 1970-01-01
      • 2015-05-06
      相关资源
      最近更新 更多