gpt4 book ai didi

grails - 如何在不导致 StackOverflowError 的情况下覆盖子类中的 setter?

转载 作者:行者123 更新时间:2023-12-02 14:23:47 25 4
gpt4 key购买 nike

我定义了一个类似于以下的类:

class Person {

String name
...

}

当我尝试覆盖 name 的 setter 时,如下图,我得到 StackOverflowError .
class SuperHero extends Person {

void setName(String name) {
this.name = deriveSuperHeroName(name)
}

}

似乎使用 this.name 赋值代表 setName这导致了问题,但我想不出解决它的方法......

最佳答案

这个应该可以正常工作:

class Person 
{
String name
}

class SuperHero extends Person
{
@Override
void setName(String name)
{
super.setName(deriveSuperHeroName(name))
}

def deriveSuperHeroName(name)
{
name
}
}

或者也没有 @Override 注释:
class SuperHero extends Person 
{
void setName(String name)
{
super.setName(deriveSuperHeroName(name))
}

def deriveSuperHeroName(name)
{
name
}
}

关于grails - 如何在不导致 StackOverflowError 的情况下覆盖子类中的 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520654/

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