我正在尝试使用Groovy(2.1.6)为Fest创建一个封闭匹配器:

def matcherLabel = [ isMatching: { JLabel label -> /* do something */ } ] as GenericTypeMatcher<JLabel>

GenericTypeMatcher是一个抽象类,只有一种方法可以实现(isMatching(T t))

但我得到这个错误:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Error casting map to org.fest.swing.core.GenericTypeMatcher, Reason: null
at org.codehaus.groovy.runtime.DefaultGroovyMethods.asType(DefaultGroovyMethods.java:7562)

我可能要做什么?

最佳答案

您的问题是GenericTypeMatcher类没有默认的零参数构造函数。而是将 map 转换为类似于ComponentMatcher的接口。如果您不能使用接口,另一种替代方法是子类GenericTypeMatcher并提供零参数构造函数。

07-28 13:20