2013-12-21 27 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