问题
如何在Clojure中使用Java的函数库
来源
平时不常用容易忘,记下来方便查询
内容
| 操作 | Clojure | Java |
|---|---|---|
| 创建类的实例(无参数) | (ClassName.) | new ClassName() |
| 创建类的实例(有参数) | (ClassName. arg1 arg2 ...) | new ClassName(arg1, arg2, ...) |
| 调用实例方法(无参数) | (.methodName obj) | obj.methodName() |
| 调用实例方法(有参数) | (.methodName obj arg1 arg2 ...) | obj.methodName(arg1, arg2 ...) |
| 调用静态方法(无参数) | (ClassName/staticMethod) | ClassName.staticMethod() |
| 调用静态方法(有参数) | (ClassName/staticMethod arg1 arg2 ...) | ClassName.staticMethod(arg1, arg2 ...) |
| 访问静态属性 | ClassName/FIELD | ClassName.FIELD |
| 访问实例的属性 | (.field obj) | obj.field |
| 修改实例的属性 | (set! (.field obj) value) | obj.field = value |
| 引用Class | ClassName | ClassName.class |
补充
再补充一个宏,可以完成流畅接口的调用链
| Clojure | Java |
|---|---|
(.. "abcdefg" .toUpperCase (.subString 0 1)) | "abcdefg".toUpperCase().substring(0, 1) |
510



被折叠的 条评论
为什么被折叠?



