问题标签 [gen-class]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - 使用 :gen-class 扩展一个暴露其裸字段的类
假设有一个 Java 类没有为它的所有字段提供 getter 和 setter,我必须用它们来扩展:gen-class
和摆弄它们。
如何访问超类字段?
我现在想到的最快(也许是最干净的......)解决方案是创建一个扩展我的超类的 java 类,并改为扩展它,但我想知道是否有一个听起来更直接的替代方案。
谢谢!
clojure - 是否可以使用私有最终字段进行生成类?
如何在 Clojure 中创建具有私有 final 字段的 Java 类?
gen-class 的ClojureDocs说该state
字段将是公开的
:州名
如果提供,将创建一个具有给定名称的公共最终实例字段。
那么,换句话说,我们是否有办法创建一个类,然后创建一个具有封装状态的 java 对象?
clojure - gen-class 不生成类
我在引用通过:gen-class
.
我可以展示的最小示例是:
问题是,这会ClassNotFoundException
在标记线上产生一个。
(我尝试了上述文件-
和.围绕那个,我需要下划线来引用。)_
project.clj
-main
test_proj.test
如果我进入项目根文件,没有target
文件夹,所以它不会生成类。如果我进入终端并运行lein compile
,它会在 下生成所需的类target
,并且上面的代码运行没有错误。这是一个糟糕的解决方法。如果我修改文件并忘记手动重新编译它怎么办?在我每次执行clean
.
作为在黑暗中的镜头,我尝试在宏compile
下方使用:ns
如果我使用破折号,compile
似乎什么都不做。我可能会误解它的用法,但它不会在target
. 如果我使用下划线,它会给出一个异常,指出找不到命名空间。
有没有办法让类自动生成,所以我不需要lein compile
每次都运行?我认为这就是:aot
in theproject.clj
所做的。
android - 在 Clojure 中创建 Android 服务
我有一个相当简单的应用程序,它是用 Clojure 编写的,并希望定期自动执行其中一个功能。我正在尝试使用 AndroidAlarmManager
来安排任务。这是我到目前为止所拥有的:
Android 的参考文档在此处输入链接描述
我自己在 Clojure 中的进步:
我想我误解了一些微妙的东西;在评估第一个 sexp 之后,符号adamdavislee.mpd.Service
未绑定,符号 也未绑定superIntentService
。
java - 具有需要枚举参数的注释的 clojure gen-class
我想编写一个 clojure lib 并公开生成的类,以便其他 java 项目可以使用它。我阅读并遵循了 gen-class 文档,一切都按我的预期工作,除了带有枚举参数的类注释。
该异常类生成时没有任何错误,也可以用作Exception
. 但是,此异常旨在与 spring web 一起用作 http 响应。spring框架读取注解,发现是HttpStatus/UNAUTHORIZED
响应401,但是spring框架抛出异常,报错java.lang.EnumConstantNotPresentException: org.springframework.http.HttpStatus
。
我查看了生成的类,它是这样的:
如图所示,HttpStatus/UNAUTHORIZED
编译成HttpStatus.401
哪个无效。
我也试过了{:code org.springframework.http.HttpStatus/UNAUTHORIZED}
,{:value org.springframework.http.HttpStatus/UNAUTHORIZED}
可以编译成@ResponseStatus(code/value = HttpStatus.401)
,但是枚举值本身还是无效的形式HttpStatus.401
。
我是否以错误的方式对 gen-class 使用类注释?或者只是 Clojure 编译器有这个错误?
PS 尝试使用 Clojure 1.9、1.10、1.10.1
clojure - 如何在 repl 和/或测试中编译和使用用 gen-class 定义的类?
Clojure 菜鸟。我无法获得:gen-class
工作的基本示例。
我已经尝试了:aot
in 的选项project.clj
并运行lein compile
以在 中生成类target/default
,但我得到了同样的错误。
什么是定义 Java 类的正确方法gen-class
,然后在 repl 中与我的项目代码的其余部分一起使用它,或者我可以运行的测试是lein test
什么?