使用泛型从 jruby 调用抽象 java 类



目前在Jruby中编写类似的Java类时面临问题。

例:

在爪哇中:

 public class Client extends ClientConnection<ChannelType> {
  //do some stuff
 }

在杰鲁比:

class Client < Java::'package_name'::ClientConnection
//do some stuff
end

不知道如何在重写客户端类时在 Jruby 代码中传递 ChannelType 类

简短的版本是,不幸的是你不能。

JRuby wiki 在这里这样解释(https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby#beware-of-java-generics):

如果使用 Java 泛型定义 Java 类,则在编译期间将擦除这些类型以实现向后兼容性。因此,JRuby 在自动类型转换方面会遇到问题。例如,如果你有一个地图,它将被视为一个简单的地图,JRuby将无法使用反射确定正确的类型。

相关内容

  • 没有找到相关文章

最新更新