Android魔术就是现实!无法理解

时间:2014-04-29 21:14:19

标签: android bundle

在系统类的android sdk Bandle.class发生了魔法。我无法解释为什么编译器执行两次返回!请参阅随附的视频。有谁能解释什么是麻烦? https://www.youtube.com/watch?v=ObOZ60OEse4&feature=youtu.be 第二种情况:https://www.youtube.com/watch?v=WB4k48MCST0&feature=youtu.be

1 个答案:

答案 0 :(得分:4)

编译器没有执行两次返回。视频中的代码是:

try {
  return (String) o;
} catch (ClassCastException e) {
  typeWarning(key, o, "String", e);
  return null;
}

代码正在尝试将Object o强制转换为String,但是强制转换失败并抛出ClassCastException,它被下一行捕获。在该catch块内,它返回null,因为它无法进行原始的String转换。