IntelliJ中Scala工作表无法导入自定义package内对象问题咨询
解决方案
你遇到的报错是因为包路径识别异常,可按照以下方案依次排查解决:
- 使用全限定名导入
你当前的package1是main.scala包下的子包,与工作表同属一个父包,直接写相对包名无法识别,替换导入语句为全路径即可:
如果存在包名冲突,可添加根包标记避免相对路径解析错误:import main.scala.package1.dogimport _root_.main.scala.package1.dog - 检查
dog对象的包声明
Scala的包归属以代码中的package语句为准,仅创建目录结构不会生效,请确认定义object dog的源文件开头已声明正确包路径:package main.scala.package1 object dog { // 你的对象逻辑 } - 预编译项目后再运行工作表
Scala工作表依赖已编译的类文件识别跨文件符号,导入前先执行一次项目构建操作,将package1的代码编译为class文件后再运行工作表。 - 检查项目源根配置(可选)
如果你按照Scala项目惯例将代码放在src/main/scala目录下,需要在IDE的项目结构设置中将src/main/scala标记为「Sources Root(源根)」,此时包路径会从源根开始计算,package1的包名不需要带main.scala前缀,你可以直接使用import package1.dog完成导入。
内容的提问来源于stack exchange,提问作者user17151855
相关产品推荐
相关产品推荐

