从 Java 将 Scala Seq 传递到 Scala 函数
Pass Scala Seq into Scala function from Java
我已经用头撞 table 好几个小时了。我正在尝试调用在将 Seq<Object>
作为唯一参数类型的库中编写的函数。问题是,我似乎无法构造任何 Scala 想要识别为集合类型的东西。
我尝试了所有方法,从使用 Scala Buffers 等,到尝试转换为 Seq 或使用 $colon$colon
东西。什么都行不通,有人能给我指出正确的方向吗?
编辑:
这是我目前使用的代码
List<Object> objs = new ArrayList<>();
Object obj = new Object();
objs.add(obj);
function(JavaConversions.asScalaBuffer(objs));
没有错误,但我收到 java.lang.String cannot be cast to [B
我省略了 new Object()
的一些参数,因为它是敏感数据
谢谢
java.lang.String cannot be cast to [B
表示您正在尝试将 String
传递给调用 byte[]
的方法(这就是 [B
的意思)。
尝试在您的 String
上调用 getBytes
,这应该可以解决您的问题。
(注意:看来您的问题与您发布的代码无关。可能是您删除的 "sensitive" 部分。)
我已经用头撞 table 好几个小时了。我正在尝试调用在将 Seq<Object>
作为唯一参数类型的库中编写的函数。问题是,我似乎无法构造任何 Scala 想要识别为集合类型的东西。
我尝试了所有方法,从使用 Scala Buffers 等,到尝试转换为 Seq 或使用 $colon$colon
东西。什么都行不通,有人能给我指出正确的方向吗?
编辑:
这是我目前使用的代码
List<Object> objs = new ArrayList<>();
Object obj = new Object();
objs.add(obj);
function(JavaConversions.asScalaBuffer(objs));
没有错误,但我收到 java.lang.String cannot be cast to [B
我省略了 new Object()
的一些参数,因为它是敏感数据
谢谢
java.lang.String cannot be cast to [B
表示您正在尝试将 String
传递给调用 byte[]
的方法(这就是 [B
的意思)。
尝试在您的 String
上调用 getBytes
,这应该可以解决您的问题。
(注意:看来您的问题与您发布的代码无关。可能是您删除的 "sensitive" 部分。)