【发布时间】:2015-03-27 17:23:48
【问题描述】:
有很多类似的话题,但我找不到确切的问题所在..
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;”在上面的评论字段中,缺少的 return 语句消失了。但我不明白为什么?我有可能的场景以及涵盖所有其他情况的默认语句。
此外,我无法初始化 CustomerDetails 对象,为其分配新的子类对象并返回,因为它是抽象的..
另外,我不能使子类的对象的名称相同以最终返回它..
需要澄清一下。非常感谢!
【问题讨论】:
-
这里好像有3个问题。第一个已经回答了。其他2个不清楚。我会让它们分开问题,并详细说明您要做什么。
标签: java switch-statement