gpt4 book ai didi

groovy - 为什么我会收到 StackOverflowError?

转载 作者:行者123 更新时间:2023-12-04 06:52:49 29 4
gpt4 key购买 nike

Groovy Console我有这个:

import groovy.util.*
import org.codehaus.groovy.runtime.*

def gse = new GroovyScriptEngine("c:\\temp")

def script = gse.loadScriptByName("say.groovy")

this.metaClass.mixin script

say("bye")

say.groovy 包含
def say(String msg) {
println(msg)
}

编辑:我提交了一个错误报告: https://svn.dentaku.codehaus.org/browse/GROOVY-4214

最佳答案

这是当它击中线时:

this.metaClass.mixin script

加载的脚本可能包含对加载它的类(此类)的引用,因此当您尝试将其混入时,您会得到一个无限循环。

一种解决方法是:
def gse = new groovy.util.GroovyScriptEngine( '/tmp' )
def script = gse.loadScriptByName( 'say.groovy' )
script.newInstance().with {
say("bye")
}

[编辑]

如果您使用原始脚本,它似乎可以工作,但要更改 say.groovy
class Say {
def say( msg ) {
println msg
}
}

关于groovy - 为什么我会收到 StackOverflowError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873964/

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