1

这在 Groovy 中合法吗?

class RequestContext {
    def static requestContext

    def static setRequestContext(rc) {
        requestContext = rc
    }
}

鉴于上述情况,我希望使用 groovy-eclipse-compiler 在编译时会失败:

RequestContext.setRequestContext()

然而,这通过了,我正试图让这个失败mvn compile

4

1 回答 1

4

它不会在编译时失败,因为您可以在运行时通过元类动态添加该方法,即:

class Test {
}

Test.metaClass.static.woo = { -> println "yay" }

Test.woo() // prints 'yay'

要在编译时失败,您需要使用@CompileStatic或注释调用类@TypeChecked

于 2020-03-26T22:36:01.727 回答