IntelliJ的Groovy控制台出了什么问题?

5

当我尝试使用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
1个回答

3

谢谢!那个方法可行,但还有一个问题,就是IntelliJ的代码自动补全不起作用,即它无法识别列表变量。 - Paddan
1
代码补全只有在你做一些非常繁琐的事情时才能起作用:类型转换。list = (java.util.ArrayList) list; list. <- 代码补全将弹出。 - TKoL
上面的URL现在是http://groovy-lang.org/groovysh.html#GroovyShell-Variables。 - diarmuid
感谢@diarmuid提供新链接。已更新答案。 - kdabir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接