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

时间:2017-10-23 11:03:44

标签: jruby

目前在Jruby中编写类似的java类时遇到了一个问题。

示例:

在Java中:

 public class Client extends ClientConnection<ChannelType> {

  //do some stuff

 }

在Jruby:

class Client < Java::'package_name'::ClientConnection

//do some stuff

end

在重写Client类时,不知道如何在Jruby代码中传递ChannelType类

1 个答案:

答案 0 :(得分:0)

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

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

  

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