如何通过镜像API获取静态方法的具体对象?

时间:2012-08-24 16:56:00

标签: dart dart-mirrors

我有这样的事情:

class MyClass
{
   static void DoSomething(arg1, arg2){...}
}

通过反射,我可以获得此类的ClassMirror。从这一点开始,我将如何获得具体的静态函数,以便我可以调用它。

请注意,我尝试使用:

ObjectMirror.invoke('DoSomething', [arg1, arg2]); 

最初似乎有效,但它不支持将复杂类型作为参数传递。这个静态函数需要一个复杂类型作为其参数之一。

理想情况下,我想获得表示静态方法的'Function'对象,以便我可以直接调用它。

1 个答案:

答案 0 :(得分:17)

一个。目前的情况是暂时的。计划是镜像API将为您包装带镜像的参数。

湾API最终可能支持getProperty方法,该方法将为您提供函数对象的Future。但是,您不会直接获得Function对象,因此在这种情况下这不会有任何区别。

℃。核心思想是API从根本上适用于镜像。为了使它更有用,它应该接受非镜像作为输入并将它们包装在镜像中。它将始终返回镜像,并在某些情况下返回这些镜头的期货。这样,API对远程和本地案例的工作原理相同。

d。用于理解镜像的资源:

  1. http://www.bracha.org/mirrors.pdf(学术论文,艰难前行)
  2. http://www.hpi.uni-potsdam.de/hirschfeld/events/past/media/100105_Bracha_2010_LinguisticReflectionViaMirrors_HPI.mp4(视频,前Dart,讨论早期镜像系统)
  3. http://gbracha.blogspot.com/2010/03/through-looking-glass-darkly.html(我在镜子上的一篇旧的,前飞镖,博客文章)
  4. http://www.wirfs-brock.com/allen/posts/228(Allen Wirfs-Brock的博客.Allen在90年代是Smalltalk的镜像先驱)
  5. http://www.wirfs-brock.com/allen/posts/245
  6. 您还可以search my blogAllen Wirf-Brock's了解该主题的帖子。