【发布时间】:2021-04-30 22:53:55
【问题描述】:
我想做一些我觉得很简单的事情,但我不知道怎么做。它如下:根据一些字符串变量,我想创建一个特定类型的对象。但是,底层对象具有相同的方法,因此我希望能够在创建对象的 if 块之外使用该对象。实现它的最佳方法是什么?
为了说明我的需要,这里是代码:
var model = null
if (modelName == "KMeans") {
model = new KMeans()
} else if (modelName == "BisectKMeans") {
model = new BisectingKMeans()
}
model.setK(k)
model.fit(data)
KMeans 和 BisectingKMeans 都有 setK 和 fit 方法。我想在 if 块内创建对象,但在其外部使用对象。此代码在声明变量时出错,因为我没有对其进行初始化。
我已尝试使用案例类并将变量声明为 Any 类型的通用对象,但无法使其工作,实现我正在寻找的最佳方法是什么?
【问题讨论】:
-
这些对象是你控制的还是由第三方库提供的?
-
它们由库 Spark MLLib 提供。更准确地说,它们是这些类:KMeans 和 BisectingKMeans
标签: scala instantiation