-
304 votesanswersviews
静态和非静态初始化代码块之间有什么区别
我的问题是静态关键字的一个特定用法 . 可以使用 static 关键字来覆盖不属于任何函数的类中的代码块 . 例如,以下代码编译: public class Test { private static final int a; static { a = 5; doSomething(a); } private static i... -
8 votesanswersviews
Kotlin - 是否可以在类中的init块之前初始化伴随对象?
是否可以在Kotlin类中的 init 块之前初始化 companion object ?如果是这样,怎么样?如果没有,有没有办法完成同样的事情 . 我有以下场景, class A(val iname: String) { init { foo.add(this) } companion object B { @JvmField val STATIC = A(&quo... -
85 votesanswersviews
Java中的静态/实例初始化程序块以什么顺序运行?
假设一个项目包含几个类,每个类都有一个静态初始化块 . 这些块以什么顺序运行?我知道在类中,这些块按它们在代码中出现的顺序运行 . 我已经读过它在各个类中都是一样的,但是我写的一些示例代码不同意这一点 . 我用过这段代码: package pkg; public class LoadTest { public static void main(String[] args) { ... -
85 votesanswersviews
在Java中使用Initializers与Constructors
所以我最近一直在研究我的Java技能,并且发现了一些我之前不知道的功能 . 静态和实例初始化器是两种这样的技术 . 我的问题是什么时候会使用初始化程序而不是在构造函数中包含代码?我想到了几个明显的可能性: static / instance初始值设定项可用于设置“final”静态/实例变量的值,而构造函数不能 静态初始值设定项可用于设置类中任何静态变量的值,这应该比在每个构造函数的开头具有...