2011-01-07 44 views
2

我有以下的Java代码:JRuby和泛型

nameFinderModel = NameFinderME.train("en", "organization", 
     sampleStream, Collections.<String, Object>emptyMap()); 

我的换算如下:

nameFinderModel = NameFinderME.train("en", "organization", sample_stream, {}) 

这是一个足够的转换还是我失去了一些东西?是否有将泛型转换为JRuby的一般准则?

回答

2

这是一个正确的转换。请记住,Java在编译时会删除泛型。引用the documentation

如果Java类是使用Java泛型定义的,则在编译期间为了向后兼容而删除类型。结果是。 JRuby在自动类型转换方面会遇到问题。例如,如果您有一个Map<String,String>,它将被视为一个简单的Map,JRuby将无法使用反射来确定正确的类型。