我有一个Java类,由于各种原因需要保留在Java中。它正在使用Scala特征和需要Scala不可变映射的Scala实现实现的类上调用方法。是的,我已经看过如何使用隐式和显式代码,如果我有Java Map并且我正在使用Scala代码进行转换,但我正在尝试从Java代码进行转换,并且在Stack Overflow上没有看到类似的内容。 / p>
我正在使用Eclipse,该项目添加了Scala特性。我尝试导入scala.collection.JavaConverters,Eclipse只是给了我一个错误,说它无法找到该类,即使我在Scala Library容器中打开scala-library时可以看到该类。我正在使用Scala 2.11.8
如何编写将Java Map转换为Java代码中的Scala Map的显式代码?
答案 0 :(得分:2)
为什么不简单使用 toMap 。
类似的东西:
pre_post_comparison <- function(sea_df, cap){
sea_df$bonus_points <- 0
for(i in seq(from=1, to=length(sea_df)-2, by = 2)){
x <- as.data.frame(sea_df[,i])
y <- as.data.frame(sea_df[,i+1])
is_strength <- TRUE # For now just assume
pairs_df <- cbind(x, y)
pairs_df <- SEA_VALUE_LUT(pairs_df)
colnames(pairs_df) <- c("cur_value", "pre_value")
attach(pairs_df)
boolean <- cur_value >=3 & ((is_strength & pre_value == 5) | (!is_strength & pre_value == 0) | (pre_value == 2 | pre_value == 3 | pre_value == 4))
sea_df[boolean,"bonus_points"] <- sea_df[boolean,"bonus_points"]+1
detach(pairs_df)
}
print(sea_df$bonus_points)
sea_df$bonus_points[sea_df$bonus_points > cap] <- cap
return(sea_df$bonus_points)
}
答案 1 :(得分:0)
Convert java.util.HashMap to scala.collection.immutable.Map in java以更“现代”的方式解决问题。这只是错过了几美元。