目前在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将无法使用反射确定正确的类型。