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),但它不起作用。答案 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)
}