Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么依赖于java泛型类的Scala类在spark中出现NoSuchMethodError失败? 注意:为了避免不必要的混淆,我简化了下面的代码_Java_Scala_Apache Spark_Generics_Traits - Fatal编程技术网

为什么依赖于java泛型类的Scala类在spark中出现NoSuchMethodError失败? 注意:为了避免不必要的混淆,我简化了下面的代码

为什么依赖于java泛型类的Scala类在spark中出现NoSuchMethodError失败? 注意:为了避免不必要的混淆,我简化了下面的代码,java,scala,apache-spark,generics,traits,Java,Scala,Apache Spark,Generics,Traits,我在下面有一个scala特征过滤器: trait Filter[T] extends Serializable { def evaluate(input: T): Boolean } 我在类中使用它来过滤特殊类型的RDD: class OtherThing(filter: Filter[String], tokens: RDD[String]){ tokens.filter(t => {filter.evaluate(t)}) } 这是可行的,但是,只要我用java接口

我在下面有一个scala特征过滤器:

trait Filter[T] extends Serializable {
    def evaluate(input: T): Boolean
}
我在类中使用它来过滤特殊类型的RDD:

class OtherThing(filter: Filter[String], tokens: RDD[String]){
    tokens.filter(t => {filter.evaluate(t)})
}
这是可行的,但是,只要我用java接口替换scala特性,就会得到NoSuchMethodError。我的java界面看起来像:

public interface Filter<T>  extends Serializable {
    scala.Boolean evaluate(T input);
}
公共接口筛选器扩展了可序列化{
布尔求值(T输入);
}
并且错误抱怨没有方法过滤对象。错误消息如下所示:

原因:java.lang.NoSuchMethodError:my.package.Filter.evaluate(Ljava/lang/Object;)Z