相关疑难解决方法(0)

如何从Java访问Scala包对象中包含的对象Foo?

如何Foo从Java 访问scala包对象中包含的对象?

package object domain { object Foo }  domain$.MODULE$.Foo$.MODULE$ 
Run Code Online (Sandbox Code Playgroud)

java scala

10
推荐指数
1
解决办法
3151
查看次数

在java中使用scala vararg方法

为什么所有scala vararg方法,当从java中使用时,似乎接受Seq变量,并且不能用作java本机vararg方法.这是一个错误吗?

例如,Buffer有方法def append(elems: A*): Unit.但在java中它有另一个签名:void append(Seq<A>).

scala scala-java-interop scala-collections

10
推荐指数
2
解决办法
1111
查看次数

如何声明scala方法,以便可以使用varargs样式从Java调用它

我在scala库类中有两个简单的方法:

class Foo {
  def bar(args : String*) : Unit = println("Foo.bar with: " + args)
  def bar(args : Array[String]) : Unit = bar(args.toSeq : _*)
}
Run Code Online (Sandbox Code Playgroud)

这一切都编译得很好.然后我把它放在一个库中foo.jar并尝试编译以下Java:

import Foo
public class Test {

    public static void main(String[] args) {
        Foo foo = new Foo();
        foo.bar("Hello", "World"); //DOES NOT COMPILE
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以用以下内容替换违规行:

foo.bar(new String[] { "Hello", "World" }); //OK
Run Code Online (Sandbox Code Playgroud)

但这似乎打败了这一点.如何使用类似Java varargs的语法从Java调用它?

java interop scala variadic-functions

9
推荐指数
1
解决办法
661
查看次数

Spark的Column.isin函数不带List

我正在尝试从Spark Dataframe中过滤出行.

val sequence = Seq(1,2,3,4,5)
df.filter(df("column").isin(sequence))
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了一个不受支持的文字类型错误

java.lang.RuntimeException: Unsupported literal type class scala.collection.immutable.$colon$colon List(1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)

根据文档,它采用scala.collection.Seq列表

我想我不想要文字?然后我可以接受什么样的包装类呢?

java scala apache-spark

7
推荐指数
1
解决办法
1万
查看次数