gpt4 book ai didi

java - 修饰符 static 只允许在常量变量声明中使用

转载 作者:行者123 更新时间:2023-12-01 18:35:55 29 4
gpt4 key购买 nike

我有一个内部类,用于存储我用于游戏的控件的信息,现在我想在其中存储一个静态 ArrayList,其中包含所有控件的名称。但我收到此错误:“修饰符 static 只允许在常量变量声明中”

private class Control{
public static ArrayList<String> keys = new ArrayList<String>();
public final String key;
public final Trigger trigger;
Control(String k, Trigger t){
key = k;
trigger = t;

keys.add(key);
}
}

现在我知道通过将 ArrayList 从类中取出并将其存储在主类中可以轻松解决这个问题。但我更愿意将所有信息保留在一个类中,以便我可以访问所有内容。

“Control.key、Control.trigger、Control.keys”只是比“按键、触发器、按键”

也许我只是有强制症,但我仍然想按照自己的方式去做。

最佳答案

您可以将 Control 类设为静态。

private static class Control {
^^^^^^

// Ok to have static members:
public static ArrayList<String> keys = new ArrayList<String>();

...
<小时/>

Java 语言规范 Section §8.1.3 对此进行了描述

8.1.3 Inner Classes and Enclosing Instances

An inner class is a nested class that is not explicitly or implicitly declared static. Inner classes may not declare static initializers (§8.7) or member interfaces. Inner classes may not declare static members, unless they are compile-time constant fields (§15.28).

关于java - 修饰符 static 只允许在常量变量声明中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045912/

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