gpt4 book ai didi

java - 为什么默认数组构造在此设置中不起作用?

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

为什么默认数组构造在此设置中不起作用?这些是我得到的错误:

“]”预期,“;”预期的,类型非法开始,预期标识符(每个 8 次)

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

class ButtonHandler implements ActionListener {
ColoredWordsExperiment coloredWords;
public ButtonHandler(ColoredWordsExperiment coloredWords) {
this.coloredWords = coloredWords;
}

String colorWords[] = new String[8];
colorWords[0] = "blue";
colorWords[1] = "red";
colorWords[2] = "purple";
colorWords[3] = "yellow";
colorWords[4] = "green";
colorWords[5] = "pink";
colorWords[6] = "orange";
colorWords[7] = "grey";

@Override
public void actionPerformed(ActionEvent e){
//If button "Matching" is clicked
if (e.getActionCommand().equals("Matching")) {
coloredWords.label1.setText(colorWordGenerator(colorWords));
}
}

public String colorWordGenerator(String colorWords[]) {
Random generator = new Random();
int i = generator.nextInt(7);
return colorWords[i];
}

}

但是,如果我将数组放入一个像这样的新的、干净的类中,它就可以工作。

public class {
public static void main(String[] arg) {
String colorWords[] = new String[8];
colorWords[0] = "blue";
colorWords[1] = "red";
colorWords[2] = "purple";
colorWords[3] = "yellow";
colorWords[4] = "green";
colorWords[5] = "pink";
colorWords[6] = "orange";
colorWords[7] = "grey";
}
}

最佳答案

类体包含方法和变量定义。变量定义可能带有初始值设定项。但是,您不能将任意语句放入类主体中。换句话说,您不能将赋值语句放入类主体中 - 您需要将它们放入方法或构造函数中。

在你的第二段代码中,赋值都在一个方法内,所以这就是为什么它编译得很好。

在这种特殊情况下,比将赋值语句放入构造函数中更好的解决方案是根本不分配给数组的各个索引,而是使用大括号使用如下值初始化数组:

String colorWords[] = {"blue", ...};

关于java - 为什么默认数组构造在此设置中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331565/

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