Scala中的“封闭类”意味着什么

时间:2011-01-13 15:22:55

标签: scala protected

Hoi,我正在学习scala并试图将一些Java代码翻译成Scala。以下是Java中我想要翻译的一些代码

public class Note{
    protected void addNote(Meeting n) {
        //add n to a list
    }
 }

 public abstract class Meeting{

     public Meeting(String name, Note note){
         note.addNote(this)
     }
 }

当我将它们翻译成Scala时

class Note{
    protected[Meeting] addNote(n:Meeting){
        //add n to list
    }
}

abstract class Meeting(name:String,note:Note){
    note.addNote(this)
}

然后我在课堂上遇到错误注意:会议不是封闭的课程。

这是什么意思?我尝试过packagename而不是Meeting,如下所示:protected [packagename] addNote(n:Meeting),但它不起作用。

1 个答案:

答案 0 :(得分:1)

你不能以这种方式做朋友课。尝试添加封闭包,如下所示:

package translation 
class Note{
  protected[translation] def addNote(n:Meeting){
    //add n to list
  }
}
abstract class Meeting(name:String, note:Note){
  note.addNote(this)
}