从Clojure/ClojureCLR中的Java/C#子类调用非虚拟受保护的方法

从Clojure/ClojureCLR中的Java/C#子类调用非虚拟受保护的方法,clojure,clojureclr,Clojure,Clojureclr,在Clojure中使用gen类生成子类时,您可以通过exposes方法公开受保护的虚拟(非最终)方法,但它是通过重写实现的,这对非虚拟(最终)方法不起作用 这样通过反射调用受保护方法的唯一方法是什么 具体化或代理可以比gen类做得更好吗?这原来是clojure clr中的一个bug。它可能在JVM版本中工作良好。Clojure允许调用非虚拟/最终方法(如果它们是受保护/公共的)。但是,我尝试调用的方法是protected internal,实际上是指protected或internal。cloj

在Clojure中使用gen类生成子类时,您可以通过exposes方法公开受保护的虚拟(非最终)方法,但它是通过重写实现的,这对非虚拟(最终)方法不起作用

这样通过反射调用受保护方法的唯一方法是什么


具体化或代理可以比gen类做得更好吗?

这原来是clojure clr中的一个bug。它可能在JVM版本中工作良好。Clojure允许调用非虚拟/最终方法(如果它们是受保护/公共的)。但是,我尝试调用的方法是protected internal,实际上是指protected或internal。clojure clr错误地将其解释为受保护的、内部的、仅在同一程序集中可访问的内部含义。因此,我的方法调用失败


这已在最新版本的clojure clr中修复。

这是clojure clr中的一个错误。它可能在JVM版本中工作良好。Clojure允许调用非虚拟/最终方法(如果它们是受保护/公共的)。但是,我尝试调用的方法是protected internal,实际上是指protected或internal。clojure clr错误地将其解释为受保护的、内部的、仅在同一程序集中可访问的内部含义。因此,我的方法调用失败

这在clojure clr的最新版本中已得到修复。

这里的“非虚拟方法”是什么意思?静止的最终?在c#中,术语是虚拟的。在java中,我相信默认情况下方法是虚拟的,但final意味着非虚拟的。这里“非虚拟方法”是什么意思?静止的最终?在c#中,术语是虚拟的。在java中,我认为默认情况下方法是虚拟的,但最终的意思是非虚拟的。