2013-12-21 18 views
4

当我尝试使用groovy控制台时,它似乎无法识别并理解以前输入的脚步。代码完成也不起作用。下面是一个非常简单的例子,失败了。创建一个列表并尝试向该列表添加一个整数。找不到创建的列表!IntelliJ的Groovy控制台有什么问题?

> def list = [] 
[] 
> list.add(10) 
groovy.lang.MissingPropertyException: No such property: list for class: ideaGroovyConsole 
Possible solutions: class 
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50) 
at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231) 
at ideaGroovyConsole.run(ideaGroovyConsole.groovy:1) 
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:257) 
at groovy.lang.GroovyShell.run(GroovyShell.java:481) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite.invoke(PogoMetaMethodSite.java:231) 
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.call(PogoMetaMethodSite.java:64) 
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120) 
at console.run(console.txt:25) 
at groovy.ui.GroovyMain.processReader(GroovyMain.java:563) 
at groovy.ui.GroovyMain.processFiles(GroovyMain.java:473) 
at groovy.ui.GroovyMain.run(GroovyMain.java:373) 
at groovy.ui.GroovyMain.process(GroovyMain.java:361) 
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:120) 
at groovy.ui.GroovyMain.main(GroovyMain.java:100) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:106) 
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:128) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:601) 
at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121 

回答

3

请不要def你应该很好。

> list = [] 
[] 
> list.add(10) 

的行为更像是groovyShell超过groovyConsole

也许这个链接解释了为什么:http://groovy-lang.org/groovysh.html#GroovyShell-Variables

+0

谢谢!这有效,但仍然存在一个问题,那就是intellij的代码完成不起作用,即它不能识别列表变量。 – Paddan

+1

代码完成工作,如果你做一些非常乏味的事情:类型转换。 list =(java.util.ArrayList)list; 列表。 < - 代码完成将弹出 – TKoL

+0

上面的网址现在是http://groovy-lang.org/groovysh.html#GroovyShell-Variables – diarmuid