【发布时间】:2014-11-30 10:03:24
【问题描述】:
我从 Grails 开始(主要使用 Eclipse 插件)并且在 Grails 读取 Java src 文件时遇到了问题 - 无论是 bin 文件夹中的 jar,还是 src/java 文件夹中的 Java 文件。
我创建了一个示例,说明如何从控制器调用 Java 静态方法,但由于某种原因,参数类型存在问题。这是控制器:
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;
}
}
当我尝试加载控制器方法的页面时,我得到:
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()
突出显示为错误的行是这样的(在控制器中):
def list = Replicate.create(counter, val1, val2)
在其他情况下,以同样的方式工作,Grails 设法编译项目,但不执行该方法。我假设我做错了什么。这里有什么想法吗?
【问题讨论】: