Grails - 没有方法签名适用于参数类型

标签 grails groovy

我从 Grails 开始(主要使用 Eclipse 插件),并且在 Grails 读取 Java src 文件时遇到了问题 - 无论是 bin 文件夹中的 jar,还是 src/java 文件夹中的 Java 文件。

我创建了一个示例,说明如何从 Controller 调用 Java 静态方法,但由于某种原因,参数类型存在问题。这是 Controller :

def attempt = {
    int counter = 20
    int val1 = 1
    int val2 = 1
    def list = Replicate.create(counter, val1, val2)
    render list.size()
}

这是 src/Java 文件夹中的 Java 文件:

public class Replicate {

public static LinkedList<Pair<Integer, Integer>> create (int count, int val1, int val2){

    LinkedList<Pair<Integer, Integer>> list = new LinkedList<Pair<Integer,Integer>>();

    for (int i = 0; i < count; i++){
        list.add(new Pair<Integer, Integer>(val1, val2));
    }

    return list;
}
}

当我尝试加载 Controller 方法的页面时,我得到:

URI:
/clive-toolbox/cliveServices/attempt
Class:
groovy.lang.MissingMethodException
Message:
No signature of method: static tst.Replicate.create() is applicable for argument types:     (java.lang.Integer, java.lang.Integer, java.lang.Integer) values: [20, 1, 1] Possible solutions:     grep(), iterator()

突出显示的错误行是这样的(在 Controller 中):

def list = Replicate.create(counter, val1, val2)

在其他情况下,以同样的方式工作,Grails 设法编译项目,但只是不执行该方法。我想我做错了什么。这里有什么想法吗?

最佳答案

您的异常正确地表明方法 Replicate.create() 对 Controller 不可用。 检查以下内容,

1. You have imported the class right.
2. Package name is correct.
3. You have cleaned your application.

尝试上面提到的所有三种方法,如果该方法在其他地方有效,可能会有所帮助。

关于Grails - 没有方法签名适用于参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27212059/

相关文章:

forms - Grails如何为所有者创建所有者的一对多关系创建表单

eclipse - 服务器在端口8080上的其他实例

groovy - Groovy 中启动的委托(delegate)字段在闭包中变为空

intellij-idea - IntelliJ Idea LanternaGriffon无法识别Griffon项目

grails - Grails过滤器检测 session 超时

grails - 如何排除 grails 全局依赖

flash - 如何在Adobe Flash中使用Groovy-Grails?

groovy - Groovy 中的范围运算符不打印整个数字范围

python - 标准化特定语言的发布/工具组

Grails 插件开发 - 覆盖域类