🐋

scalaのimportエラー

2023/08/22に公開

事象

Pointクラスをimportをしようとしたところ下記のエラーが発生した。

1 |import point.Point
  |             ^^^^^
  |             value Point is not a member of point

エラー発生時の状態

ディレクトリ構成

src/
   └── main/
      ├── point/
      │    └── Point.scala
      └──  Main.scala

コード

Main.scala
import point.Point

object Main {
  def main(args: Array[String]): Unit = {
    val p1: Point = new Point(10, 10)
    println(p1)
  }
}
Point.scala
package point
class Point(val x: Int, val y: Int) {
  def distance(that: Point): Int = {
    val xdiff = math.abs(this.x - that.x)
    val ydiff = math.abs(this.y - that.y)
    math.sqrt(xdiff * xdiff + ydiff * ydiff).toInt
  }

  def +(that: Point): Point =
    new Point(x + that.x, y + that.y)
}
実行コマンド
scalac Main.scala

原因

Main.scalaのコンパイル前にPoint.scalaをコンパイルしていなかったため。
下記のようにPoint.scalaをコンパイルしてclassファイルを作成した後にMain.scalaをコンパイルしたところ正常にコンパイルできた。

scalac point/Point.scala
scalac Main.scala

Discussion