gpt4 book ai didi

java - 设置传递参数到基类的可接受的方法是什么?

转载 作者:行者123 更新时间:2023-12-01 14:21:10 26 4
gpt4 key购买 nike

我想将尽可能多的可重复代码移至基类中,但我发现自己需要将变量从派生类传递回基类。

myClass 必须具有无参数初始化方法,并通过 myInterface.setup()“设置”。

如何强制 myBase 的扩展程序设置变量,而不必每次都从 someBaseMethod() 检查它们的设置

interface myInterface
{
void setup(String myStr);
void someBaseMethod();
}

abstract class myBase implements myInterface
{
String myStr = null;

protected abstract String getMyStr();

// called lots of times.
public void someBaseMethod()
{
if (myStr == null) myStr = getMyStr();

// ...
}
}

class myClass extends myBase
{
String s = null;

public void setup(String myStr)
{
s = myStr;
}

protected String getMyStr()
{
return s;
}
}

最佳答案

如果 protected String getMyStr() 在子类中实现并返回实现特定的字符串,那么您不应该将其作为字段 String myStr 保留在基类中。

只需创建一个局部变量:

public void someBaseMethod() {
final String myStr = getMyStr();
.....

此外,如果您需要在执行其他操作之前运行设置方法,那么您可能需要一个 boolean 标志,表示字段已设置。

关于java - 设置传递参数到基类的可接受的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17544789/

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