gpt4 book ai didi

scala - "Stable identifer required"伴随对象导入期间的错误

转载 作者:行者123 更新时间:2023-12-01 07:11:25 26 4
gpt4 key购买 nike

我对 Scala 真的很陌生,我遇到了一个我自己无法解决或通过互联网搜索无法解决的错误。

我有一个名为“GUI”的 Scala 类,它代表一个 JFrame 和一个伴随类。当我尝试使用 import GUI._ 导入伴生类时我收到错误“需要稳定标识符,但找到了 GUI.this.GUI()”。

我创建了一个空类和伴随对象并且导入工作正常,所以我假设错误与我的代码特定的内容有关。下面是有问题的代码:

object GUI {

def test:Integer = 1
}

class GUI extends JFrame{

import GUI._
val ICON_LOCATION:File = new File("Images/iMovies.ico");
val ICON:BufferedImage = Ootil.createImage("iMovies.png");
val TITLE:String = "iVideos";
val LICENSE_NAME:String = "OpenBSD";

def GUI(){
setLayout(new BorderLayout());

createGUI();

pack();
setSize(100,100);
setLocationRelativeTo(null);
setVisible(true);
}

def versionMajor: Integer = 1
def versionMinor: Integer = 0
def versionRevision: Integer = 0
def versionPreReleaseID: String = "alpha"
def versionBuildNumber: String = "1b"

private def createGUI():Unit = {
val panel = new JPanel();
panel.setLayout(new BorderLayout());


add(panel, BorderLayout.CENTER);
}

def getIcon():BufferedImage = ICON

def getProgramTitle():String = TITLE

def getConfigOptions():LookAndFeelConfigurationOptions = GUIConfigOptions.CONFIG_OPTIONS;
}

最佳答案

要补充 Kipton 的答案,这样做没有错:

class GUI{
def GUI() {
println("something")
}
}

但结果不会是一个构造函数——它将是一个普通的方法。
val a = new GUI()不会打印任何内容,而是调用 a.GUI()将要。

这就是为什么您没有收到有关错误地定义构造函数的错误消息的原因。

当您运行命令时 import GUI._ , Scala 需要 GUI总是评估同一个对象。仅当 GUI 时才会出现这种情况是 object , package ,或 val .

在您的代码中, import GUI._引用方法 GUI你定义的,因为 GUI方法定义在比 object GUI 更近的范围内(事实上​​,编译器还没有遇到 def GUI 的定义,但并没有什么区别)。

import GUI._引用方法 GUI ,这不是 val , object , 或 package ,您收到了关于 GUI 的错误消息不是一个稳定的标识符。

关于scala - "Stable identifer required"伴随对象导入期间的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6969849/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com