スカラからJavaクラスでのpublic static finalメンバーにアクセスするには?

orSt:

私は、Scalaの次のコードを実行しようとしてきました。

import javax.swing.JFrame

class ScalaClass(title: String) extends JFrame(title: String) {
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
  // ...
}

object Main {
  def main(args: Array[String]) : Unit = {
    var sFrame : JFrame = new ScalaClass("Hi");
  }
}

JFrame.EXIT_ON_CLOSEと同じでなければなりません3私はのIntelliJ IDEAでビルドして実行しようとすると、しかし、私はこのエラーを受け取ります:

Error:(4, 35) value EXIT_ON_CLOSE is not a member of object javax.swing.JFrame setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

追加import javax.swing.JFrame.EXIT_ON_CLOSEのいずれかの動作しません。

私が間違ってやっている人を知っていますか?

アレクセイ・ロマノフ:

あなたはそれがだ場所を使用する必要があり、実際に、で定義されているがjavax.swing.WindowConstantsJavaコンパイラは、見ているときJFrame.EXIT_ON_CLOSE、それはに書き換えていますWindowConstants.EXIT_ON_CLOSEScalaのコンパイラはそれをしない(どちらもありませんKotlin)。

それはで宣言するために使用されるJFrameが、Javaの9で削除されましたそれは、リンクで説明したように、Java用のソース-とバイナリ互換性が変化するのですが、Scalaの/ Kotlinのためのソース互換性がありません。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=478401&siteId=1
おすすめ