Java while循环内的开关-缺少返回语句
有很多类似的话题,但我找不到我的问题到底在哪里 CustomerDetails-抽象类 该方法从文件中读取,其中第一个字母确定客户的类型(客户详细信息的子类) 我注意到,如果在上面的注释字段中输入“returnnull;”,丢失的return语句就会消失。但我不明白为什么?我有可能的场景和默认语句,它们涵盖了所有其他情况 此外,我不能初始化CustomerDetails对象,不能为其分配子类的新对象并返回,因为它是抽象的 而且,我不能使子类的对象的名称相同,以便最终返回它Java while循环内的开关-缺少返回语句,java,switch-statement,Java,Switch Statement,有很多类似的话题,但我找不到我的问题到底在哪里 CustomerDetails-抽象类 该方法从文件中读取,其中第一个字母确定客户的类型(客户详细信息的子类) 我注意到,如果在上面的注释字段中输入“returnnull;”,丢失的return语句就会消失。但我不明白为什么?我有可能的场景和默认语句,它们涵盖了所有其他情况 此外,我不能初始化CustomerDetails对象,不能为其分配子类的新对象并返回,因为它是抽象的 而且,我不能使子类的对象的名称相同,以便最终返回它 需要澄清一下。。非常感
需要澄清一下。。非常感谢 因为while循环可能永远不会执行。在这种情况下,您必须返回一个值。,因为while循环可能永远不会执行。在这种情况下,您必须返回一个值。如果
hasNextLine()
在您第一次调用它时返回false该怎么办?在这种情况下会退还什么?您需要一个return
语句来处理这种可能性
如果您不希望发生这种情况,另一种方法是抛出一个异常。如果hasNextLine()
在您第一次调用它时返回false会怎么样?在这种情况下会退还什么?您需要一个return
语句来处理这种可能性
如果您不希望发生这种情况,另一种方法是抛出一个异常。这里似乎有3个问题。第一个问题已经得到答复。另外两个不清楚。我会让他们单独提问,更详细地说明你想做什么。这里似乎有三个问题。第一个问题已经得到答复。另外两个不清楚。我会让他们单独提问,更详细地说明你想做什么。
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;
}