java - 最终静态数组 - 非典型常量值

标签 java

我有一个有点不典型的静态常量值,我想通过以下方式声明它:

protected static final int[][] a = new int [][] { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};

不幸的是它被拒绝了。除非使用常量表达式初始化,否则在非静态内部类型中字段 a 不能声明为静态。

为了完全确定我们对情况有相同的概述,这是内部类的领域。

我也尝试将其声明为

protected static final int[][] a = { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};

它也不起作用。 :(

即使我尝试使用静态初始化程序,也是同样的情况:

protected static final int[][] a;
static { a = new int [][] { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}}};

当我删除 new int[][] 时,它也被拒绝。

为什么不起作用?当然,我可以跳过静态并将其视为非静态字段,但如果它是常量值,为什么不将其设为静态?

最佳答案

看起来你有类似的东西:

class inner{
protected static final int[][] a = { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};
}

您可以删除静态并仍然直接访问a

class inner{
    protected final int[][] a = { {34,16}, {50,16}, {66,16}, {82,16}, {98,16}, {114,16}};
    }

内部类只能有静态常量字段。

关于java - 最终静态数组 - 非典型常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18542228/

相关文章:

java - Sqlite 不会保存添加的数据

java - Android 5 中的图像内存不足

java - Quartz Scheduler Job 运行一次,然后报错

java - 我需要一个可以从我的 API 中的任何地方访问但不能从使用 API 的应用程序访问的 java 方法

java - 出现异常如何解决

java - 仅在空格或破折号上拆分字符串。 Java小程序

java - Spring Boot : Error: Exception thrown by the agent : java.net.MalformedURLException:本地主机名未知

java - MySql 驱动类自动加载

java - PrintWriter 方法中的奇怪错误

java - 如何在 hazelcast 中显示所有当前锁