警告“getAt”无法应用于Groovy中的“Integer”

问题描述 投票:9回答:3

在我的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-idea groovy
3个回答
0
投票

您可以向intellij添加动态方法和属性,以便了解它们。

http://confluence.jetbrains.com/display/GRVY/Dynamic+Methods+and+Properties

您还可以使用groovydsl让intellij知道您的代码应该如何工作。


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...
}

这将强制您的编辑器查看GroovyResultSet中的方法,而不是在groovy编译期间附加到对象的同名方法。


0
投票

严格来说,.getAt(0).getAt(-1),你也可以分别使用.first().last(),Intellij将停止抱怨。

来源:我刚尝试过。 (请参阅getAt不要指望整数在这里:code-completion

    def shortId(def longId){
        longId?.toString()?.split('[/:]')?.last()
    }
© www.soinside.com 2019 - 2024. All rights reserved.