gpt4 book ai didi

Java返回值不能为空

转载 作者:行者123 更新时间:2023-11-30 11:11:03 27 4
gpt4 key购买 nike

我有以下代码:

public abstract class Task<S extends AbstractScript>
public S getScript() {
return (S) Environment.getScript();
}
}

Environment.getScript() 返回当前的 AbstractScript

但是,这个AbstractScript可能为null,但是getScript()返回的S(是一个AbstractScript)一定不能为null,因为它被多次使用,所以我不想一直检查它是否为null。

我想到了 null 检查 Environment.getScript(),但是在 null 的情况下我不知道返回什么。

最佳答案

如果它不能为 null,但您不知道返回什么,则:

让具体实现指定其默认值:

public abstract class Task<S extends AbstractScript> {
private final S deflt;
protected Task(S deflt) {
this.deflt = deflt;
}

public S getScript() {
S s = (S)Environment.getScript();
return s == null ? deflt : s;
}
}

或者让调用者指定它:

public S getScript(S deflt) {
S s = (S)Environment.getScript();
return s == null ? deflt : s;
}

关于Java返回值不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555599/

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