1

我有以下测试代码:

@proxy
class A{
  noSuchMethod(Invocation inv) => "no problems";
}

class B{
  String get aString => "I'm a B string";
}

void main() {
  B b = new A();
  print(b.aString);
}

从我在api 站点上读到的关于代理的内容中,我认为可以将代理分配给任何东西而不会在运行时获得 TypeError,但这里不是这种情况。如果在不抛出 TypeErrors 的情况下无法将代理分配给任何东西,那么让代理基本上实现他们想要的任何东西有什么意义。在文档中它说将代理分配给任何变量类型都不是静态类型错误。

4

1 回答 1

2

@proxy is used to avoid warnings.

class A{
  noSuchMethod(Invocation inv) => "no problems";
}

@proxy
class B{
  noSuchMethod(Invocation inv) => "no problems";
}

void main() {
  A a = new A();
  B b = new B();

  a.something; // warning
  b.something; // no warning
}
于 2014-04-23T19:14:31.477 回答