我在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) 我为spark-ml库编写了一个类,它使用了另一个类.如果要清楚,我的类是RandomForestClassifier的包装器.现在我希望有机会从spark-shell导入这个类.
所以问题是:如何使包含我自己的类的包能够从spark-shell导入?非常感谢!