【发布时间】:2018-07-17 06:38:51
【问题描述】:
scala 是否有类似于类加载器对 java 中的静态块所做的类似操作?
例如在 scala 中类似于以下内容:
class A{
static{
System.out.println("This gets called at the time of loading a class by class loader.")
}
}
我将 Scala 2.x 与 Apache Spark 2.x 一起使用
PS:我已经阅读了What is Scala equivalent of Java's static block?这个答案,但我不想创建伴生对象然后通过类的构造函数调用它。
编辑:[我的用例]
考虑一个 java 场景,我们在静态块中编写 Class.forName("some.jdbc.driver") ,然后将 jdbc 驱动程序放在类路径中。在该类加载器加载我们提到的类之后。我想做一些完全一样的事情
【问题讨论】:
-
不,您链接的答案是最接近的等效 Scala。
-
同伴中没有它的原因是什么?
-
@cchantep 因为那你需要做这样的事情
object Test { class A { A }; object A { println("A.init") }}我不想那样做。请从类加载器的角度来看上述问题。 -
这是一种习惯,而不是技术要求,因为对象回答了问题
-
@cchantep 对象不回答这个问题。我想在静态块中放一些东西,可以在类加载器加载类时执行
标签: java scala apache-spark classloader static-block