如何在Xtend中正确编写static静态代码块?
Xtend 静态代码块编写方式
首先明确:Xtend 不支持 Java 中static {}形式的静态代码块写法,直接照搬Java语法会报编译错误。
Xtend 实现等价静态初始化逻辑的正确语法是使用静态构造块,格式为static new() { /* 初始化逻辑 */ },示例代码如下:
import java.util.ArrayList import java.util.List class DemoClass { public static List<String> STATIC_DATA // 静态初始化块,和Java static {}效果完全一致 static new() { STATIC_DATA = new ArrayList<>() STATIC_DATA.add("初始化静态数据") STATIC_DATA.add("类加载时仅执行一次") } }
相关使用规则:
- 静态初始化块的执行时机和Java静态代码块完全相同,在类首次被加载时执行,全生命周期仅运行一次
- 单个类中可以定义多个
static new()块,执行顺序和代码中定义的先后顺序一致 - 如果只是简单给静态变量赋值,直接在变量声明时赋值即可,不需要额外写静态初始化块
内容的提问来源于stack exchange,提问作者ChSF
相关产品推荐
相关产品推荐

