使用Scala中的泛型调用Java静态方法

使用Scala中的泛型调用Java静态方法,java,scala,Java,Scala,我有一个Java方法的形式 public interface JavaInterface< T extends A >{ static < T extends A > JavaInterface< T > callThis(){ //I want to call this in scala } } 但我得到一个错误,告诉我它“不是一个值”。如何在Scala中调用该静态方法?您需要: val

我有一个Java方法的形式

    public interface JavaInterface< T extends A >{
        static < T extends A > JavaInterface< T > callThis(){
         //I want to call this in scala

        }
    }
但我得到一个错误,告诉我它“不是一个值”。如何在Scala中调用该静态方法?

您需要:

val x = JavaInterface.callThis[SomeClass]()

静态方法参数化的是方法,而不是类型。

现在的代码假设
JavaInterface
是一个具有nilary
apply
方法的对象,该方法返回另一个具有
callThis()
方法的对象。为此,您的代码必须如下所示(在Scala中):

trait JavaInterface[T]{
def callThis()=println(“foobar”)
}
对象接口{

def apply[T您假设在伴生对象中有静态方法,可以像在Java.ClassName.methodname中一样使用。我想他想从Scala代码中调用该Java方法。请提供一个完整的示例,说明您正在执行的操作,包括您收到的完整错误消息。
val x = JavaInterface.callThis[SomeClass]()
trait JavaInterface[T] {
  def callThis() = println("foobar")
}

object JavaInterface {
  def apply[T <: JavaInterface[T]] = new JavaInterface[T] {}
}