Scala 私人[上下文]的含义是什么

Scala 私人[上下文]的含义是什么,scala,Scala,我试着用Scala语言来概括我的想法,我认为最好的学习方法就是把它付诸实践。在Java项目(Spring)和我的Scala项目之间复制粘贴代码时,IDE进行了转换,我不理解。不幸的是,在互联网上和文档中搜索它让我没有什么工作可做 守则: @Bean private[context] def passwordEncoder: PasswordEncoder = { return new BCryptPasswordEncoder } 编译上述代码时,编译器会抱怨: `error: con

我试着用Scala语言来概括我的想法,我认为最好的学习方法就是把它付诸实践。在Java项目(Spring)和我的Scala项目之间复制粘贴代码时,IDE进行了转换,我不理解。不幸的是,在互联网上和文档中搜索它让我没有什么工作可做

守则:

@Bean private[context] def passwordEncoder: PasswordEncoder = {
    return new BCryptPasswordEncoder
}
编译上述代码时,编译器会抱怨:

`error: context is not an enclosing class`

有人能解释一下
private[context]
部分的意思吗?

context
只是一个占位符,您可以在其中填充希望方法是私有的上下文。但这是可选的。如果不指定上下文,成员将变为“class private”,afaik的行为类似于Java中的
private

背景:Scala提供了一种以上的访问级别规范:对象私有规范,即
private[this]
,规定所涉及的成员只能被在同一对象上调用的成员看到,而不能被来自不同对象的成员看到,即使它们属于同一类型。除了
这个
,您还可以使用包名,甚至是
,它是根命名空间的别名

有关这方面的更多信息,请参见以下文件的“第5.2节-修饰符”:

私有修饰符可以与模板中的任何定义或声明一起使用

[……]

修饰符可以使用标识符
C
(例如
private[C]
)限定,该标识符必须表示包含定义的类或包。标记有此类修饰符的成员分别只能从包C内的代码或C类及其伴随模块内的代码中访问(§5.4)


context
只是一个占位符,您可以在其中填充希望方法私有的上下文。但这是可选的。如果不指定上下文,成员将变为“class private”,afaik的行为类似于Java中的
private

背景:Scala提供了一种以上的访问级别规范:对象私有规范,即
private[this]
,规定所涉及的成员只能被在同一对象上调用的成员看到,而不能被来自不同对象的成员看到,即使它们属于同一类型。除了
这个
,您还可以使用包名,甚至是
,它是根命名空间的别名

有关这方面的更多信息,请参见以下文件的“第5.2节-修饰符”:

私有修饰符可以与模板中的任何定义或声明一起使用

[……]

修饰符可以使用标识符
C
(例如
private[C]
)限定,该标识符必须表示包含定义的类或包。标记有此类修饰符的成员分别只能从包C内的代码或C类及其伴随模块内的代码中访问(§5.4)


谢谢你,伙计!这让我明白了很多。幸好您指出了在规范中的何处可以找到它,以便进一步阅读AccessQualifier。谢谢!这让我明白了很多。幸好您指出了在规范中的何处可以找到它,以便进一步阅读AccessQualifier。