在常规,有两种方法即any和find方法,其可以在地图中使用.
这两种方法将"搜索"为我们所感兴趣的内容(即,既any和find方法返回元素是否在地图与否,这是他们需要搜索).
但在这个搜索中他们有什么不同?
我试过下面的代码......
@Grapes([
@Grab('org.hsqldb:hsqldb:2.0.0'),
@GrabConfig(systemClassLoader=true, initContextClassLoader=true)
])
import groovy.sql.Sql
println Class.forName('org.hsqldb.jdbc.JDBCDriver').newInstance()
Run Code Online (Sandbox Code Playgroud)
它适用于groovyConsole,但无法使用Web Start运行.以下是错误消息.
startup failed:
General error during conversion: No suitable ClassLoader found for grab
java.lang.RuntimeException: No suitable ClassLoader found for grab
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:54)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at groovy.grape.GrapeIvy.chooseClassLoader(GrapeIvy.groovy:173)
at groovy.grape.GrapeIvy$chooseClassLoader.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
at groovy.grape.GrapeIvy.grab(GrapeIvy.groovy:239)
at groovy.grape.Grape.grab(Grape.java:141)
at groovy.grape.GrabAnnotationTransformation.visit(GrabAnnotationTransformation.java:282)
at org.codehaus.groovy.transform.ASTTransformationVisitor$3.call(ASTTransformationVisitor.java:302)
at org.codehaus.groovy.control.CompilationUnit.applyToSourceUnits(CompilationUnit.java:839)
at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:544)
at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:520)
at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:497)
at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:306)
at …Run Code Online (Sandbox Code Playgroud) 你如何将clojure源文件转换为YAML?我已经使用clj-yaml库在交互式REPL中执行它,但我想自动执行此操作,因此我可以传入输入文件并指定输出,即:
clj2yaml input.clj > output.yml
Run Code Online (Sandbox Code Playgroud) 我在域类中有静态方法返回一个url.我需要动态构建该URL,但g.link无法正常工作.
static Map options() {
// ...
def url = g.link( controller: "Foo", action: "bar" )
// ...
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Apparent variable 'g' was found in a static scope but doesn't refer to a local variable, static field or class. Possible causes:
You attempted to reference a variable in the binding or an instance variable from a static context.
You misspelled a classname or statically imported field. Please check the spelling.
You attempted to use a method 'g' but left …Run Code Online (Sandbox Code Playgroud) 我是groovy的新手所以我有一个问题,我有两个列表,我想知道第一个列表中存在的值是否也存在于第二个列表中,并且它必须返回true或false.
我尝试做一个简短的测试,但它不起作用......这是我试过的:
// List 1
def modes = ["custom","not_specified","me2"]
// List 2
def modesConf = ["me1", "me2"]
// Bool
def test = false
test = modesConf.any { it =~ modes }
print test
Run Code Online (Sandbox Code Playgroud)
但是如果我将第一个数组中"me2"的值更改为"mex2",则它必须返回false时返回true
任何的想法?
我将一些wordpress内容包含在我的grails应用程序中,使用customTag一切正常.如果url的状态代码不是200,我想要呈现一些标准文本
到目前为止我有这个
def wordpressHp = { body ->
// def url = grailsApplication.config.wordpress.server.url+'?include=true'
def url = "http://www.dasdasdasgsdniga.nd"
def content
try{
content = url.toURL().getText(connectTimeout: 10000)
}catch(e){
content="SORRY WORDPRESS IS CURRENTLY NOT AVAILABLE"
}
out << content
}
Run Code Online (Sandbox Code Playgroud)
正确的url被注释掉了,我现在希望尝试失败.
但它不是渲染它渲染我的提供者的一些DNS错误页面.所以我认为我必须寻找http状态代码,但我该怎么做?
任何暗示,提前谢谢
我使用grails 2.3.4 用eclipse grails plugin(GGTS).但是,安装完成后我创建了一个项目并得到:
Description Resource Path Location Type
Groovy: compiler mismatch Project level is: 2.1 Workspace level is 1.8
Groovy compiler level expected by the project does not match workspace compiler level.
Go to Project properties -> Groovy compiler to set the Groovy compiler level for this project test test Groovy compiler mismatch problem
Run Code Online (Sandbox Code Playgroud)
我试图更改编译器首选项但没有任何变化......

我非常感谢你的回答!
我正在使用 Grails 2.4.3,对于我的项目,我需要从 /src/java/com/company/MyClass.java 中的 .java 加载资源文件
我尝试了以下代码:
ClassLoader.getSystemResourceAsStream("myfile.txt")
Run Code Online (Sandbox Code Playgroud)
我试图将文件放在项目中的任何地方,但似乎没有找到。
当我在编译期间将文件放在目标/类中时,它起作用了。但它不可行(我不能在每次部署时都这样做)
如何在 grails 应用程序中声明要在 Java 代码中使用的资源?
我有一个位于 Maven 中心的图书馆。当我推送一个新版本时,它首先进入 sonatype staging,然后我必须将其推广到生产中。
我想创建一个示例应用程序,它将从 staging 中提取 lib,这样我就可以在将其推广到生产环境之前运行一些测试以及其他一些测试。我会在我的 build.gradle 中使用什么 URL 作为临时存储库?
只是为了澄清我已经尝试使用:https : //oss.sonatype.org/content/repositories/staging/ 但我的项目还没有,只有我已经推广到生产的版本在这个 repo 中。
尝试使用JDBC编写一些基本的PostgreSQL代码,最终集成到用Groovy编写的应用程序中.我编写了这个Groovy代码来连接数据库然后执行语句; 但是,我收到一个错误,我试图找到解决方案,但不能.以下是Groovy代码的相关部分,以及关于错误发生位置的注释:
def sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)
println "Sql Instance: " + sql
sql.execute(
" DROP TABLE IF EXISTS test;"
+ "CREATE TABLE test ("
+ "id SERIAL,"
+ "word TEXT,"
+ "number INTEGER,"
+ "decimal NUMERIC,"
+ "datetime TIMESTAMP"
+ ");"
)
def params = ['Hello, World!', 42, 3.14159, null]
sql.execute("INSERT INTO test (word, number, decimal, datetime)"
+ "VALUES (?,?,?,?);", params)
sql.eachRow("SELECT * FROM test;") { row ->
println "The row Id is: ${row.id}"
// HERE??
+ …Run Code Online (Sandbox Code Playgroud)