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

就會報如下錯誤:



一上是本人測試的結果,如有問題,還請各位指點,一起,學習進步!

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