相关疑难解决方法(0)

Scala case类私有构造函数但是public apply方法

如果我有以下具有私有构造函数的case类,并且我无法访问companion对象中的apply-method.

case class Meter private (m: Int)

val m = Meter(10) // constructor Meter in class Meter cannot be accessed...
Run Code Online (Sandbox Code Playgroud)

有没有办法将case类与私有构造函数一起使用,但是在公开的伴随中保留生成的apply-method?

我知道两个选项之间没有区别(在我的例子中):

val m1 = new Meter(10)
val m2 = Meter(10)
Run Code Online (Sandbox Code Playgroud)

但我想禁止第一种选择.

- 编辑 -

令人惊讶的是以下工作(但实际上并不是我想要的):

val x = Meter
val m3 = x(10) // m3  : Meter = Meter(10)
Run Code Online (Sandbox Code Playgroud)

scala apply private-constructor case-class

33
推荐指数
2
解决办法
2万
查看次数

为什么Scala编译器失败,"包中的对象SparkConf无法在org.apache.spark包中访问"?

我无法访问SparkConf包中.但我已经导入了import org.apache.spark.SparkConf.我的代码是:

import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.spark.rdd.RDD

import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._

object SparkStreaming {
    def main(arg: Array[String]) = {

        val conf = new SparkConf.setMaster("local[2]").setAppName("NetworkWordCount")
        val ssc = new StreamingContext( conf, Seconds(1) )

        val lines = ssc.socketTextStream("localhost", 9999)
        val words = lines.flatMap(_.split(" "))
        val pairs_new = words.map( w => (w, 1) )
        val wordsCount = pairs_new.reduceByKey(_ + _)
        wordsCount.print() 

        ssc.start() // Start the computation
        ssc.awaitTermination() // Wait for the computation to the …
Run Code Online (Sandbox Code Playgroud)

scala sbt apache-spark

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