我有两个常规脚本A
和B
。
A
看起来像:
import some.Class
//Some helper function
String doSomeWork(Integer input) {
//does something with input and returns a String
return "result: $input"
}
//Now do some real stuff here
println( doSomeWork(42) )
在B
我要导入A
(在类路径中)并使用其doSomeWork
:
<击> 进口A. println A //打印A类。这意味着我们可以在这里访问它。 =) println(A.doSomeWork(45))//现在尝试调用As doSomeWork
但是最后一行导致异常:
Caught: groovy.lang.MissingMethodException: No signature of method: static A.doSomeWork() is applicable for argument types: (java.lang.Integer) values: [45]
Possible solutions: doSomeWork(java.lang.Integer)
groovy.lang.MissingMethodException: No signature of method: static A.doSomeWork() is applicable for argument types: (java.lang.Integer) values: [45]
Possible solutions: doSomeWork(java.lang.Integer)
at B.run(B.groovy:3)
击> <击> 撞击>
import A //Will execute As code
println A //prints class A. This means we can access it here. =)
println( (new A()).doSomeWork(45) ) //Now call As doSomeWork
如何在脚本 A
中成功调用doSomeWork
s B
?
A
的方法。所以(新的A())。doSomeWork(45)正在做这项工作。但是,这意味着导入A
时,其所有代码都在B
代码之前执行。我怎么能避免这种情况?我的目标是只使用A
方法(显然不会访问任何A
属性),而A
不会产生任何其他副作用。