0
setter가 정의 된 클래스가있는 경우 해당 클래스의 인스턴스에서 함수로 생성 된 메서드를 어떻게 참조해야합니까? 사양 일종의는 변수 + '의 ID 것이다 제안 = "(바보 같다)하지만,이 구문 분석하지 않습니다 그래서 예를 들면Dart에서 setter 메소드에 대해 생성 된 이름은 무엇입니까?
:.
class Bar {
set foo(int value) {
//whatever
}
}
typedef F(int value);
void main() {
F f = new Bar().foo=; //Fails, but what should this be??
f(5);
}
MethodMirror.invoke()를 사용하여 미러가있는 설정기를 호출 할 수 있습니다. "set :"접두어를 붙이면 거울을 얻을 수 있습니다. –
안녕 저스틴,보고 : http://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/lib/mirrors/mirrors.dart?r=10918 invoke 메소드가 표시되지 않습니다. MethodMirror에 있습니다. ObjectMirror에 하나가 있지만 F (int 값)와 매우 다른 서명을 가지고 있으므로 F에 할당 할 수 없습니다. – Cutch
아, 맞아. 그것은 ObjectMirror에 있으며 setField()가있는 것처럼 보입니다. 어떤 메소드 호출도 처리해야하기 때문에 f (int v) 서명이 없으므로 noSuchMethod()와 같이 작동합니다. 또한 미러 시스템을 통해 메소드를 폐쇄 할 수 없습니다. 그것은 굉장 할 것이다. InstanceMirror.hasReflectee가 true 인 경우 멤버를 캡처 할 수 있습니다. –