private[spark] class SparkDriverExecutionException 中的[spark]是限制private的范围

下面举个例子

新建几个package如下


TestClass.scala 中的内容如下

package test

private[test] class TestClass {

   private var sum = 0
  def add(b: Byte): Unit = {
  sum += b
  }
  def checksum(): Int = {
    return ~(sum & 0xFF) + 1
  }
}

我们在package,testone中创建一个ChecksumAccumulator.scala文件

具体内容如下:

package test.testone

private[testone] class ChecksumAccumulator {

  private var sum = 0
  def add(b: Byte): Unit = {
  sum += b
  }
  
  def checksum(): Int = {
    return ~(sum & 0xFF) + 1
  }
}
下面来测试一下:

我们在testone中创建一个测试文件test1.scala。在里面调用一下

ChecksumAccumulator 和 TestClass

test1.scala的代码如下:

package test.testone

import test.TestClass

object test1 extends App{

   val a = new TestClass
  println("Test is TestClass ok!")
  a.add('c')
  println(a.checksum())
  
  
  val b = new ChecksumAccumulator
  println("Test is  ChecksumAccumulator ok!")
  b.add('d')
  println(b.checksum())
 
}


可以正常打印出如下内容:

Test is TestClass ok!
-99
Test is  ChecksumAccumulator ok!
-100

我们在testtwo中创建test2.scala文件内容如下:

package test.testtwo

import test.TestClass

object test2 extends App{

  val a = new TestClass
  println("Test is ok!")
  a.add('c')
  println(a.checksum())
  
}

也可以正常打印出,如下内容:

Test is ok!
-99


当我们把代码

val b = new ChecksumAccumulator
  println("Test is  ChecksumAccumulator ok!")
  b.add('d')
  println(b.checksum())

放入test2.scala中包如下错误:

not found: type ChecksumAccumulator

我们导入一下import test.testone.ChecksumAccumulator

就会报如下错误:



一上是本人测试的结果,如有问题,还请各位指点,一起,学习进步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章