在我的Groovy代码的这一行:
def document = someQuery().Document[0]
方法someQuery将返回一个Json数组,这很有效。由于编辑不知道财产,因此它标有Document
,并在[0]
显示警告,说:
'getAt' in 'org.codehaus.groovy.runtime.DefaultGroovyMethods' cannot be applied to '(java.lang.Integer)'
那么为什么更好的方法是避免这种警告呢?
答案 0 :(得分:0)
您可以向intellij添加动态方法和属性,以便了解它们。
http://confluence.jetbrains.com/display/GRVY/Dynamic+Methods+and+Properties
您还可以使用groovydsl让intellij知道您的代码应该如何运作。
答案 1 :(得分:0)
您的代码可能类似于:
def sql = //... (new/existing connection to the database)
sql.eachRow { row ->
//Do something...
}
替换为:
def sql = //... (new/existing connection to the database)
sql.eachRow { GroovyResultSet row ->
//Do something...
}
这将迫使您的编辑器在Groovy编译期间查看GroovyResultSet中的方法,而不是对象上具有相同名称的方法。
答案 2 :(得分:0)
严格地.getAt(0)
和.getAt(-1)
,您也可以分别使用.first()
和.last()
,Intellij将停止抱怨。
来源:我刚刚尝试过。 (请参见code-completion,请参见getAt不需要整数)
def shortId(def longId){
longId?.toString()?.split('[/:]')?.last()
}