dart代理对象可以或不可以分配给类型变量?

时间:2014-04-23 18:27:50

标签: dart proxy-object

我有以下测试代码:

@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 site关于代理的内容上看到的,我假设在没有在运行时获得TypeError的情况下将代理分配给任何东西是可以的,但这不是这里的情况。如果代理不能在没有抛出TypeErrors的情况下被分配给任何东西,那么让代理实现他们想要的任何东西有什么意义呢。在文档中,它表示将代理分配给任何变量类型都不是静态类型错误。

1 个答案:

答案 0 :(得分:2)

@proxy用于避免警告。

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
}