1

パッケージをパッケージ オブジェクトにインポートできません。Eclipse では動作しないようだったので、intellij に切り替えました。ある時点で機能が動作しているように見えたので、ほとんどのパッケージのパッケージ オブジェクトを作成しました。現在、まったく機能していないようです。これはファイル package.scala のパッケージ オブジェクトです。パッケージ ファイル自体は正常にコンパイルされます。

package rStrat.rSwing
package testSw //Edited for clarity

object testSw
{
  import rStrat._
  import rSwing.topUI._
}

これは、同じモジュールとパッケージのクラス ファイルです。

package rStrat.rSwing.testSw

object MainTest {
  def main(args: Array[String])
  {
    val testApp = new AppWindow //Appwindow is a member of topUI
    testApp.open
  }
}

topUI パッケージを MainTest ファイルに直接インポートすると、問題なく動作します。パッケージ全体をインポートしようとしても、特定のクラスをインポートしようとしても違いはありません。これは法的なスカラですか?問題は IDE にありますか?

Scala 2.92 Final、Intellij 11.1.1、JDK 1.6.0_31、Eclipse 3.7.2 を使用しています。

4

2 に答える 2

4

Scala にはファースト クラスのインポートがありません。パッケージにはクラスとトレイトの宣言のみを含めることができますが、パッケージ オブジェクトには、 、、(型エイリアス)、暗黙的なものなどvar、他の有効な Scala 宣言を含めることができます。また、他のオブジェクトと同様にインポートできますが、それらはパッケージの残りの部分に推移的に伝播されないため、他の部分からは見えません。valdeftype

于 2012-05-09T20:28:19.497 に答える
3

これにより、オブジェクトが作成されますrStrat.rSwing.testSw.testSw

package rStrat.rSwing
package testSw //Edited for clarity

object testSw

これにより、パッケージ オブジェクトが作成されますrStrat.rSwing.testSw.testSw

package rStrat.rSwing
package testSw //Edited for clarity

package object testSw

これにより、パッケージ オブジェクトが作成されますrStrat.rSwing.testSw

package rStrat.rSwing

package object testSw

それはあなたが望む最後のものです。

于 2012-05-09T23:19:56.353 に答える