scala伴生对象的初始化问题求教一段代码

飞火流云 2017-09-18 02:22:41
这里我想把mockLoadFile在mP对象初始化的时候就执行,但是不知道该怎么写,求指点如何修改伴生对像的构造函数呢?
似乎apply不大管用?

package test

trait PartitionStrategy extends Serializable {
/** Returns the partition number for a given edge. */
def getPartition(key: Int): Int
}

object PartitionStrategy {
def fromString(s: String): PartitionStrategy = s match {
case "MetisPartition" => MetisPartition
case _ => throw new IllegalArgumentException("Invalid PartitionStrategy: " + s)
}

case object MetisPartition extends PartitionStrategy {
val metisMap =new scala.collection.mutable.HashMap[Int,Int]
def mockLoadFile() {
try {
var id = 1 ;
while(id < 10000)
{
var partition = 5 ;
metisMap.put(id, partition)
id = id +1
}
println("size: " + metisMap.size)
} catch {
case ex: Exception => { // Handle missing file
ex.printStackTrace()
}
}
}

override def getPartition(src: Int): Int = {
var s = metisMap.get(src)
if(!s.isEmpty)
return s.getOrElse(0)
else
throw new IllegalArgumentException("Metis can't find partition!")
}
}
}


package test

object TestPartition {

def main(args: Array[String]): Unit = {
try {
var mP = PartitionStrategy.fromString("MetisPartition")
println(mP.getPartition(110))
} catch {
case ex: Exception => {
ex.printStackTrace()
}
}
}
}
...全文
220 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,261

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧