小编y.k*_*aev的帖子

斯卡拉.通用类声明问题

我在Scala中遇到类声明问题:

   class Class2[
      A,
      B <: Class2[A,B,C],
      C <: Class3[A,C]
   ]


   class Class3[
      A,
      C <: Class3[A,C]
   ]

   class Class1[
      A, 
      B <: Class2[A,B,C], 
      C <: Class3[A,C]
    ](obj : B) { ... }
Run Code Online (Sandbox Code Playgroud)

它是正确的声明,但每次我想创建该类的实例时,我需要手动指定参数A和C. 喜欢:

val X = Class1[Type1, Type2, Type3](correct_object_of_Type2)
Run Code Online (Sandbox Code Playgroud)

如果我尝试val X = Class1(OBJ)它会导致错误...types [Nothing, B, Nothing] do not conform to [A, B, C]...

为什么Scala不从B推断出类型A和C?以及如何为Scala编译器声明类,以便它能够自己指定A,C?谢谢

编辑

我很抱歉配方,原来的任务是正确定义Class1,如:

   class Class2[
      A,
      B <: Class2[A,B,C],
      C <: Class3[A,C]
   ]


   class Class3[
      A,
      C <: Class2[A,C]
   ]

   ??class Class1(obj …
Run Code Online (Sandbox Code Playgroud)

scala generic-programming user-defined-functions

3
推荐指数
1
解决办法
79
查看次数

如何使用spark-shell导入自己的scala包?

我为spark-ml库编写了一个类,它使用了另一个类.如果要清楚,我的类是RandomForestClassifier的包装器.现在我希望有机会从spark-shell导入这个类.

所以问题是:如何使包含我自己的类的包能够从spark-shell导入?非常感谢!

scala apache-spark apache-spark-ml apache-spark-mllib

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