gpt4 book ai didi

java - 为什么不能在内部类中为静态变量使用初始化程序 block ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:20:30 27 4
gpt4 key购买 nike

<分区>

为什么 java 不允许在非静态内部类中使用静态初始化 block 进行静态声明?

在下面的代码中,outer2 会工作而 inner2 不会,尽管做同样的事情。有任何想法吗?我不是在寻找解决方法,我只是想了解为什么 java 无法做到这一点。

public class WhyUNoStatic {
public static final String outer1 = "snth"; // ok
public static final String outer2; // ok
static
{
outer2 = "snth";
}

public class Inner {
public static final String inner1 = "snth"; // still ok!
public static final String inner2; // FAILURE TIME
static
{
inner2 = "snth";
}
}
}

编辑:请注意 inner1 可以正常工作。并不是说 java 禁止在内部类中使用静态变量,它只是禁止声明它们。

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