gpt4 book ai didi

java - while 循环内的 switch - 缺少 return 语句

转载 作者:行者123 更新时间:2023-12-01 07:56:38 25 4
gpt4 key购买 nike

有很多类似的主题,但我找不到我的问题到底出在哪里..

CustomerDetails - 抽象类

该方法从文件中读取,其中第一个字母确定客户的类型(它们是 CustomerDetails 的子类)。

public static CustomerDetails readCustomerData(....)

try
{
while(...hasNextLine())
{
.....
.....
switch(firstLetter)
{
case 'A': ....
PrivateCustomerDetails aaa = new PrivateCustomerDetails(... inherited fields + some extra ones)
return aaa;

case 'B': ... BusinessCustomerDetails bbb = .....
return bbb;

default: return null;
}
}
// possibly return something here..
}
catch(Exception e)
{
...
return null;
}

我注意到,如果我输入“return null;”在上面的评论字段中,缺少的返回语句消失了。但我不明白为什么?我有可能的场景以及默认语句,涵盖所有其他情况。

此外,我无法初始化 CustomerDetails 对象,将子类的新对象分配给它并返回,因为它是抽象的..

另外,我无法使子类的对象名称相同以最终返回它..

需要一些澄清..非常感谢!

最佳答案

如果 hasNextLine() 在第一次调用时返回 false 会怎样?在这种情况下会返回什么?您需要一个 return 语句来处理这种可能性。

如果您不希望发生这种情况,另一种方法是抛出异常。

关于java - while 循环内的 switch - 缺少 return 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29306585/

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