2
文檔的@proxy
註釋狀態:鏢:代理註解的使用
如果一個類都被註解
@proxy
,或者它實現被註釋的任何類,那麼該類被認爲是實現任何接口和任何成員關於靜態類型分析。因此,將對象分配給任何類型的變量不是靜態類型警告,並且不是訪問該對象的任何成員的靜態類型警告。
不過,考慮下面的代碼:
import 'dart:mirrors';
@proxy
class ObjectProxy{
final InstanceMirror _mirror;
ObjectProxy(Object o): _mirror = reflect(o);
@override
noSuchMethod(Invocation invocation){
print('entered ${invocation.memberName}');
var r = _mirror.delegate(invocation);
print('returning from ${invocation.memberName} with $r');
return r;
}
}
class ClassA{
int k;
ClassA(this.k);
}
void printK(ClassA a) => print(a.k);
main() {
ClassA a = new ObjectProxy(new ClassA(1)); //annoying
printK(a);
}
鏢編輯提醒
A value of type 'ObjectProxy' cannot be assigned to a variable of type 'ClassA'.
的代碼按預期執行在未覈對的模式,但警告是煩人,從我可以告訴,壓制這個警告是@proxy
標籤應該做的唯一的事情。
我誤解了@proxy
標籤的用法,或者這是使用dart編輯器/分析器的錯誤嗎?
不是我想要做的(我希望它能夠代理任何對象,包括一些在編譯時不知道),但我想我'必須爲此而解決。謝謝。 – DomJack 2015-03-20 01:37:06