首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用gen-class定义静态初始化器

如何使用gen-class定义静态初始化器
EN

Stack Overflow用户
提问于 2012-08-03 02:37:55
回答 1查看 367关注 0票数 4

我正在从Clojure生成一个实现JDBC驱动程序的Java类,问题是JDBC驱动程序通常在静态初始化器中向DriverManager注册自己,如下所示:

代码语言:javascript
复制
public class MyDriver implements java.sql.Driver {
    ...
    static { 
        ...
        try {
            DriverManager.registerDriver(new MyDriver());
        } catch (SQLException s) {
            throw (RuntimeException) new RuntimeException
                ("could not register MyDriver driver!").initCause(s);
        }
        ...
     }
}

我必须在gen-class声明中放入什么,实现它的函数应该有什么名称?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-08-03 04:02:55

我不相信这在目前纯gen-class中是可能的。clojure的gen-class总是生成一个静态初始化器,它通过调用

代码语言:javascript
复制
clojure.lang.Var#internPrivate(String, String)

静态初始化器的生成有一定的灵活性(请参阅gen-class:load-impl-ns选项),但是在查看genclass.clj之后,没有办法将您自己的自定义代码添加到初始化器中。

顺便提一下,在JVM中,静态初始化器“方法”的名称是<clinit>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11783736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档