我有这个注释:

class Handler {
  final Function onListen;
  final Function onPause;
  final Function onResume;
  final Function onCancel;

  const Handler({this.onListen, this.onPause, this.onResume, this.onCancel});
}

并像这样使用它:
abstract class Test implements ViewModel<TestController> {

  static onListen() {
    print('onListen');
  }

  @Handler(onListen: onListen)
  Stream<String> get messages;

  factory Test() = _$Test;
  Test._();
}

到目前为止,此方法有效,但是有没有办法使用非static方法作为我的注释的参数?

当我删除static时,出现以下错误:常量创建的参数必须是常量表达式。

最佳答案

不,实例方法不能是const,注释必须是const,
因此,您只能将静态方法或顶级函数用作注释的参数。

08-03 15:19