x
ソースファイルを含むフォルダを作成しpackage.scala
ました。このファイルには、次のコードが含まれています。
package x
package object y
{
trait A
case class B extends A
}
Eclipseはコンパイルエラーを表示します:illegal cyclic reference involving object y
。
これが何を意味するのかよくわかりません。通常のクラスを定義(削除case
)しようとすると、エラーメッセージが消えます。別の解決策は、パッケージオブジェクトの代わりに通常のオブジェクトを使用することです。
package x
object y
{
trait A
case class B extends A
}
サイクリックリファレンスはどこにありますか?そして、どうすればそれを削除できますか?私が理解している限り、パッケージオブジェクト内でトレイトとそのケースサブクラスを定義することはできません。しかし、私はこの制限がどこから来ているのかについてはわかりません。