The code you wrote works as it is.
The scala compiler will generate a bridge method that implements the signature, as seen from Java, and proceeds to implement the scala.
Here the result of running javap -c of your Awesome class is exactly the same as you wrote it,
public class Awesome implements Footastic,scala.ScalaObject { public void foo(scala.collection.Seq<Foo>); Code: 0: getstatic #11
The first foo method with the argument Seq <Foo> corresponds to the scala varargs method in Awesome. The second foo method with the argument Foo [] is the bridge method provided by the scala compiler.
source share