You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Scala报错‘object myClass is not a member of package <root>’解决咨询

解决Scala中object myClass is not a member of package <root>报错问题

问题核心原因

  1. 你定义的myClass是case class,但错误提示寻找的是object myClass,类型不匹配;
  2. 编译时未同时处理两个文件,导致编译器找不到myClass的定义;
  3. 不必要的_root_导入反而混淆了查找逻辑——你的类本来就在根包下,无需额外指定根包导入。

具体解决步骤

  • 修正导入逻辑:两个类都在根包下,Scala默认会自动查找根包内的类,直接删掉import _root_.myClass即可;如果要显式导入,用import myClass(注意是class而非object)。
  • 同时编译两个文件:
    • 命令行编译时,需同时指定两个文件:
      scalac myClass.scala test1.scala
      scala test1
      
    • 使用IDE(如IntelliJ)时,确保两个文件放在同一个源目录(比如src/main/scala),IDE会自动处理编译依赖。
  • 建议遵循Scala命名规范:类名首字母大写,将myClass改为MyClass,避免和变量名混淆,减少潜在问题。

修正后的代码示例

test1.scala

object test1 {
  def main(args: Array[String]): Unit = {
    // 直接实例化类(若改了类名则用MyClass)
    val clsInstance = myClass()
    println(this.getClass.getName)
    println(clsInstance)
  }
}

myClass.scala

// 推荐首字母大写写法:case class MyClass()
case class myClass()

内容的提问来源于stack exchange,提问作者Th333w1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:42:08