在我的Groovy代码的这一行:
def document = someQuery().Document[0]
方法someQuery将返回一个Json数组,这很好用。由于编辑不知道财产,它强调Document
,并在[0]
显示警告,说:
'getAt' in 'org.codehaus.groovy.runtime.DefaultGroovyMethods' cannot be applied to '(java.lang.Integer)'
那么,为避免这种警告,更好的方法是什么?
您可以向intellij添加动态方法和属性,以便了解它们。
http://confluence.jetbrains.com/display/GRVY/Dynamic+Methods+and+Properties
您还可以使用groovydsl让intellij知道您的代码应该如何工作。
您可能拥有如下代码:
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...
}
这将强制您的编辑器查看GroovyResultSet中的方法,而不是在groovy编译期间附加到对象的同名方法。
严格来说,.getAt(0)
和.getAt(-1)
,你也可以分别使用.first()
和.last()
,Intellij将停止抱怨。
来源:我刚尝试过。 (请参阅getAt不要指望整数在这里:code-completion)
def shortId(def longId){
longId?.toString()?.split('[/:]')?.last()
}