scala - 除非我在包中声明,否则类是不可见的
问题描述
我有AppComponents
一AppLoader.scala
堂课projectDir/app
我的测试在projectDir/test/ControllerSpec/UserControllerSpec.scala
在UserControllerSpec.scala
,我试图创建一个实例,AppComponents
但编译器找不到AppComponents
该类
override def components: BuiltInComponents = new AppComponents(context) //doesn't compile
但是如果我在其中包含语句package app
,Apploader.scala
那么编译器能够找到AppComponents
并且上面的代码可以编译。
我不明白这种行为。
解决方案
所以AppComponents
应该只对其他类/特征/等可见。在一个包裹之外。因为
如果我在 Apploader.scala 中包含语句包 app 则编译器能够找到 AppComponents
看起来UserControllerSpec
确实声明了一个包并且看不到空包的成员。
这种行为可能是为了与 Java 保持一致,请参阅Import package with no name Java 的答案。
推荐阅读
- javascript - 当用户想要重置密码时,来自后端的 Jquery 问题?
- database - SQLAlchemy:来自多个表的外键(多对多)
- reactjs - 为 ReactJS 应用程序导入图像的问题
- r - 为什么 R format() 函数无法正常工作以格式化数字向量?
- java - 我将如何在 MCP 中绘制玩家的微型 3d 模型?
- python - SQLAlchemy 查询不适用于函数
- reactjs - 组件路径道具已匹配,但未在 Gatsby 中使用仅客户端路由呈现
- r - group_by %>% anova_test 在 DFn DFd 中不一致
- arrays - 如何将 img 添加为动态组件
- reactjs - 为什么我的数组会这样保存(数组中的数组?)