在系统类的android sdk Bandle.class发生了魔法。我无法解释为什么编译器执行两次返回!请参阅随附的视频。有谁能解释什么是麻烦? https://www.youtube.com/watch?v=ObOZ60OEse4&feature=youtu.be 第二种情况:https://www.youtube.com/watch?v=WB4k48MCST0&feature=youtu.be
答案 0 :(得分:4)
编译器没有执行两次返回。视频中的代码是:
try {
return (String) o;
} catch (ClassCastException e) {
typeWarning(key, o, "String", e);
return null;
}
代码正在尝试将Object o
强制转换为String,但是强制转换失败并抛出ClassCastException
,它被下一行捕获。在该catch块内,它返回null
,因为它无法进行原始的String转换。