gpt4 book ai didi

clojure - clojure 编译器生成的字节码中的 "public static {}"是什么意思?

转载 作者:行者123 更新时间:2023-12-02 05:07:25 25 4
gpt4 key购买 nike

当我在 clojure 中生成一个类(通过 gen-class)时,我通过 javap 检查得到以下定义:

public class foo.bar extends java.lang.Object implements java.io.Serializable{
public final java.lang.Object state;
public static {};
public foo.bar();
...
}

我想知道结构 public static {} 是什么意思,因为我以前从未见过这样的东西……

谁能教教我吗?

最佳答案

静态部分包含在静态类初始化期间运行的代码(在创建类的任何实例之前)。

考虑在 Clojure 中使用带有副作用的命名空间级代码——只要任何人需要或使用命名空间,这些副作用就会发生,即使他们实际上没有调用任何函数。这是一个可比较的情况。

关于clojure - clojure 编译器生成的字节码中的 "public static {}"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065135/

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