Java - 可以在静态初始化 block 中初始化最终变量吗?

标签 java static final

根据我对Java语言的理解,静态变量可以在静态初始化 block 中进行初始化。

但是,当我尝试在实践中实现这一点时(static 变量也是 final),我得到了下面屏幕截图中显示的错误:

/image/5I0am.jpg

最佳答案

当然可以:static final 变量可以在静态 block 中初始化但是....在该示例中您有隐式 GOTO(try/catch 本质上是一个“如果发生不好的事情发生时 GOTO 捕获”)。

如果抛出异常,您的 final 变量将不会被初始化。

请注意,使用静态结构违背了面向对象的教条。它可能会使您的测试复杂化并使调试更加困难。

关于Java - 可以在静态初始化 block 中初始化最终变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339932/

相关文章:

java - <?> 在 Android 方法签名中是什么意思?

java - 有没有办法获得最高分的物体

java - 从匿名 Java 类改变原始变量的合理方法是什么?

java - 已将 int 设置为 Final 但无法分配 Final int

java - 发送消息时印地语解码错误。输出类似于“वऔ? हà¤μà…à…? वà¤?à¤1व à¤?à¤?वà…? à¤ìवत¤à¤ वà¤?à¤гé

java - 为什么 Java 中的 if 语句会发出错误,即使它始终为真?

java - 对Java中数据初始化的困惑

static - 我可以多态访问静态方法吗?

c++ - 检查 C++ 成员函数是否存在,可能 protected

java - 使用 element.click() 时出现 WebDriverException 'unknown error: no element reference returned by script'