Cómo acceder a un miembro public static final en una clase Java de Scala?

ORST:

He estado tratando de ejecutar el siguiente fragmento de código 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_CLOSEdebe ser igual a 3. Sin embargo, cuando intento para generar y ejecutar en IntelliJ IDEA que recibo este error:

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

Añadiendo import javax.swing.JFrame.EXIT_ON_CLOSEque no funciona bien.

¿Alguien sabe lo que estoy haciendo mal?

Alexey Romanov:

Es necesario utilizar el lugar que está realmente definido en, javax.swing.WindowConstants. Cuando el compilador de Java ve JFrame.EXIT_ON_CLOSEque ha reescrito en WindowConstants.EXIT_ON_CLOSE; el compilador Scala no hace eso (tampoco lo hace Kotlin).

Lo que solía ser declarada en JFramepero fue eliminado en Java 9 ; es un cambio fuente- y compatible binario de Java, como se describe en el enlace, pero no el código compatible para Scala / Kotlin.

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=478404&siteId=1
Recomendado
Clasificación