小编cfr*_*ick的帖子

在groovy @Canonical bean构造函数调用中添加缺少的属性?

我是groovy的新手,刚开始探索它的元编程功能.我坚持在bean构造函数调用中添加缺少的属性.

在与FactoryBuilderSupport一起使用的类中,我想动态添加在构造函数调用期间尚未定义和提供的那些属性.这是精简版:

@Canonical
class MyClass {
    def startDate
    def additionalProperties = [:]

    def void propertyMissing(String name, value) {
        additionalProperties[name] = value
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我构造具有未知属性的类,则不添加proprty但是我得到了一个MissingPropertyException:

def thing = new MyClass(startDate: DateTime.now(), duration: 1234)
Run Code Online (Sandbox Code Playgroud)

属性持续时间不存在,我预计它将通过处理propertyMissing.据我所知groovy,调用tuple-constructor会导致无参数构造函数调用,然后调用groovy生成的setter.那么为什么我会得到一个MissingPropertyException

由于我是groovy的新手,我可能缺少一些基本的AST或MOP规则.我非常感谢你的帮助.

groovy mop

5
推荐指数
1
解决办法
703
查看次数

如果父bean定义为原型,则child bean会自动成为原型

在spring框架中,如果我将一个bean定义为范围"protoype"并且它是另一个bean的父级.子bean会自动成为原型吗?

例:

<bean id="a" class="..." scope="prototype"/>
<bean id="b" class="..." parent="a"/>
Run Code Online (Sandbox Code Playgroud)

b的范围是什么?

java spring

5
推荐指数
1
解决办法
6298
查看次数

Clojure 传递依赖版本冲突

我有一个具有两个依赖一个Clojure的Leiningen项目A,并B和传递依赖XAB依赖。

A ? X [version 1.0]
B ? X [version 2.0]
Run Code Online (Sandbox Code Playgroud)

这两个AB是外部依赖性。问题是我不能使用Xfor 的第 2A版或for 的第 1 版XB因为它抛出java.lang.NoSuchMethodError

Clojure 中是否有一个插件可以帮助遮蔽两者的传递依赖关系AB或者提供一种惯用的处理方式?

dependencies clojure leiningen

5
推荐指数
1
解决办法
75
查看次数

在Groovy中嵌套`each`循环

需要有关groovy中嵌套循环语法的指导.如何使用iterator打印(a.name的值,b.name的值)的值?

List a
a.each {
    print(it.name)
    List b = something
    b.each {
        print(value of a.name, value of b.name)
    }
}
Run Code Online (Sandbox Code Playgroud)

groovy

4
推荐指数
1
解决办法
5985
查看次数

Emacs clojure:去定义

我使用ergoemacs-mode,clojuremode和autocomplete

自动完成功能非常好.我该怎么按才能定义一个函数?我习惯了Cursive,但我想使用免费的Emacs,我需要去定义功能.

这是我的init.el档案:

(global-set-key [f8] 'neotree-toggle)

;; Set bigger fonts
(set-default-font "Ubuntu Mono-16")

(add-hook 'clojure-mode-hook 'turn-on-eldoc-mode)
(setq nrepl-popup-stacktraces nil)
(add-to-list 'same-window-buffer-names "<em>nrepl</em>")


;; General Auto-Complete
(require 'auto-complete-config)
(setq ac-delay 0.0)
(setq ac-quick-help-delay 0.5)
(ac-config-default)

;; ac-nrepl (Auto-complete for the nREPL)
(require 'ac-nrepl)
(add-hook 'cider-mode-hook 'ac-nrepl-setup)
(add-hook 'cider-repl-mode-hook 'ac-nrepl-setup)
(add-to-list 'ac-modes 'cider-mode)
(add-to-list 'ac-modes 'cider-repl-mode)

(add-hook 'clojure-mode-hook 'paredit-mode)
(require 'package)

(add-to-list 'package-archives
  '("melpa-stable" . "http://melpa-stable.milkbox.net/packages/"))

(add-to-list 'package-archives
  '("melpa" . "http://melpa.milkbox.net/packages/"))

(add-to-list 'package-archives
  '("marmalade" . "http://marmalade-repo.org/packages/"))

;; Initialize all the …
Run Code Online (Sandbox Code Playgroud)

emacs clojure

4
推荐指数
1
解决办法
3388
查看次数

如何从REPL中检查GUI树视图中的Clojure映射,就像IDE调试器一样?

我想调试一个复杂的嵌套映射.很快就可以快速弹出一个Swing TreeView,让我以交互方式导航地图,就像IDE中任何体面的调试器一样.在Clojure中有一个简单的方法吗?

debugging clojure

3
推荐指数
1
解决办法
256
查看次数

Grails 3中的IntegrationSpec在哪里?

在升级到Grails 3.0.1的过程中.除了在2.4.4中运行良好的集成测试外,一切都很好.

我注意到grails.test.spock.IntegrationSpec不再存在org.grails:grails-test:3.0.1了.

尝试spock.lang.Specification通过Gradle integrationTest任务扩展和运行,但它似乎没有注入Spring资源.还试图@Integration得到同样的错误,GGTS还抱怨:

General error during canonicalization: Provider "data" not installed java.nio.file.FileSystemNotFoundException: Provider "data" not installed at java.nio.file.Paths.get(Paths.java:147) at  
org.grails.io.support.MainClassFinder.searchMainClass(MainClassFinder.groovy:37) at 
org.grails.compiler.injection.test.IntegrationTestMixinTransformation.visit(IntegrationTestMixinTransformation.groovy:82) at 
org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:150) at org.codehaus.groovy.transform.ASTTransformationVisitor
...
Run Code Online (Sandbox Code Playgroud)

所以我想知道IntegrationSpec3.0 是否仍然存在.我应该怎么做呢?

grails grails-3.0

3
推荐指数
1
解决办法
868
查看次数

Clojure幽灵:如何找到具有特定价值的地图键?

例如在地图中:

{"test-1" 23,
 "test-2" 456,
 "test-3" 23}
Run Code Online (Sandbox Code Playgroud)

如何找到有价值的钥匙23

clojure specter

3
推荐指数
2
解决办法
503
查看次数

在 groovy 中将字符串日期转换为日期格式时出现问题:

我试图将其中包含日期的字符串与当前日期进行比较,但是当我尝试将字符串解析为日期格式时,它总是给我一个错误。

出现问题的代码部分:

String data = "12-05-2020"
Date teste = Date.parse("dd-MM-yyy",data)
Run Code Online (Sandbox Code Playgroud)

错误:

groovy.lang.MissingMethodException: No signature of method: static java.util.Date.parse() is applicable for argument types: (String, String) values: [dd-MM-yyy, 12-05-2020]
Possible solutions: parse(java.lang.String), wait(), clone(), grep(), any(), putAt(java.lang.String, java.lang.Object)
    at Script1.run(Script1.groovy:2)
Run Code Online (Sandbox Code Playgroud)

这似乎是一件非常愚蠢的事情,所以,如果你能帮助我的话!多谢

groovy

3
推荐指数
1
解决办法
4267
查看次数

如何摆脱 Vaadin 回退页面?

几个月前,我尝试了一些 Vaadin。从那以后,当我没有运行本地网络服务器(在 Windows pc 上)时,我的 localhost:8080 会显示一个 Vaadin 后备页面

1.

当我运行 Apache Tomcat 时,一切正常,localhost:8080 会显示 Apache 页面。但是当我尝试通过 Tomcat 管理器部署 WAR 文件时,我再次以 Vaadin 的回退结束,但这次没有图像

2

这是如何集成的,我该如何摆脱它?

localhost vaadin

3
推荐指数
1
解决办法
44
查看次数