gpt4 book ai didi

eclipse - 标准类成员不可见 - `Type of expression is statically unknown` 错误

转载 作者:行者123 更新时间:2023-12-02 00:09:59 24 4
gpt4 key购买 nike

我在 Eclipse 中遇到许多标准 groovy 函数的 Type of expression is statically unknown 错误:

import groovy.util.slurpersupport.NodeChild
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
import org.codehaus.groovy.tools.xml.DomToGroovy

...

                                   v- here
def xmlRequest= new XmlSlurper().parseText(templateString.trim())

def outputBuilder = new StreamingMarkupBuilder()
v- and here
fw<< outputBuilder.bind{ mkp.yield xmlRequest }

哦,是的,问题是 - 请问这是什么意思?谷歌并未广泛了解此错误。

错误是真实存在的,不是运行阶段可以自行解决的问题。反之,项目将无法运行。 (这是一个测试并说:没有找到 JUnit 测试)

最佳答案

我认为 Tim Yates 的评论是正确的。似乎与类型推断有关。我猜你遇到了这个错误 GRECLIPSE-1483 : 字段初始值设定项对类型推断没有贡献

我做了一个小测试:

package test

import groovy.util.slurpersupport.NodeChild
import groovy.xml.MarkupBuilder
import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil
import org.codehaus.groovy.tools.xml.DomToGroovy

class SimpleTest {
def templateString = '<test>testing</test>'

def xmlRequest= new XmlSlurper().parseText(templateString.trim())
}

有了这个,trim() 方法被加了下划线。激活 Groovy 类型检查(右键单击文件 -> Groovy 类型检查 -> 类型检查),消息“表达式类型静态未知:修剪”

更进一步,使用 @TypeChecked 注释类:

  • 此行有多个标记
    • Groovy:[静态类型检查] - 找不到匹配方法 groovy.util.XmlSlurper#parseText(java.lang.Object)。请检查是否声明的类型是正确的,如果方法存在。
    • Groovy:[静态类型检查] - 找不到匹配方法 java.lang.Object#trim()。请检查声明的类型是否正确,方法是否存在。
    • 表达式类型静态未知:trim

但是如果我将上面的代码包含在一个方法中,从而没有字段初始值设定项,上述错误就会消失:

@TypeChecked
class SimpleTest {
def test() {
def templateString = '<test>testing</test>'
def xmlRequest= new XmlSlurper().parseText(templateString.trim())
}
}

如果没有 @TypeChecked 注释,“Groovy 类型检查”不会给出此错误。

关于eclipse - 标准类成员不可见 - `Type of expression is statically unknown` 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15896210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com