거울을 선물로 반환하면 극적으로 할 수있는 일이 제한됩니다. 예를 들어다트 미러 API : 리플렉션 통화 결과 얻기
,
class ObjectA {
methodA(){}
methodB(){}
}
class DynamicWrapper extends MagicalDynamicWrapper {
ObjectA real;
Map<String, Function> methods;
DynamicWrapper(this.real, this.methods);
}
var w = new DynamicWrapper(new ObjectA(), {"methodB" :(){ 'do something' }});
w.methodA() // calls ObjectA.methodA
w.methodB() // calls 'do something'
가 MagicalDynamicWrapper에 noSuchMethod을 정의하는 것입니다 내가 일반적으로 할 거라고 방법 : 방법에 같은 이름을 가진 방법이 있는지 확인합니다
- 지도를 작성한 다음 호출하십시오.
- 이 없으면 리플렉션을 통해 "실제"개체를 호출합니다.
실제 개체를 호출하면 항상 미래가 표시됩니다. 그래서 그것은 작동하지 않습니다.
어떤 시점에서 Getter 값을 사용하여 미래의 값을 가져올 수 있지만 더 이상 사용할 수 없습니다.
내 질문 :
동 기적으로 반사 호출의 결과를 얻을 수있는 방법이 있나요?
분산 된 환경에서 선물은 분명히 갈 수 있습니다. 그러나 모든 메타 정보를 사용할 수있는 비 분산 설정에서는 리플렉션 호출의 가치를 얻을 수 있어야합니다. 필자는 테스트 프레임 워크의 작성자와 도구를 작성하는 데 큰 차이가 있습니다. 미래를 반환
답변 해 주셔서 감사합니다. 내 경우에는 invokeOn 메서드가 작동합니다. 곧 동기화 리플렉션 API가 추가되기를 바랍니다. 필자가 쓰는 것으로 생각하는 모든 재미있는 라이브러리가 필요하기 때문이다. –