gpt4 book ai didi

java - 为什么将函数参数声明为 final?

转载 作者:IT老高 更新时间:2023-10-28 20:24:22 25 4
gpt4 key购买 nike

我目前正在阅读 Sams 出版的《24 小时内自学 Android 应用程序开发》一书。我对 Java、Android 或其他方面比较陌生。我在 ActionScript 3 方面有非常扎实的背景,它与 Java 有足够的相似之处,语言本身并不难掌握,但我仍然对书中一些代码示例背后的基本原理有一些疑问。例如,下面是第 9 小时示例代码附带的一个函数:

private void processScores(final TableLayout scoreTable, 
XmlResourceParser scores) throws IOException, XmlPullParserException{

在此函数签名中,作者已将 scoreTable 参数声明为 final。我有点疑惑他们为什么要这么做。我什至不会尝试为函数参数 scoreTable 分配一个新值(这在 ActionScript 中被认为是一种不好的做法)。此外,我实际上还没有看到有人在我检查过或移植到 AS3 的任何真实 Java 中这样做。

Android 开发中是否有一些特定的东西使得有时必须将某些函数参数声明为 final?

为什么 TableLayout 对象声明为 final,而不是 XmlResourceParser?

最佳答案

您可能希望将参数标记为 final 的主要原因有两个。首先,如果您打算在匿名内部类中使用该参数,则必须将其标记为 final 以便可以在该类中引用它。这实际上是一个非常常见的将参数标记为 final 的用例。

标记参数 final 的另一个常见原因是防止自己意外覆盖它们。如果您真的不想更改参数,那么也许您应该将它们标记为 final,这样如果您真的这样做,您将在编译时收到错误而不是在运行时发现你的代码有错误。

关于java - 为什么将函数参数声明为 final?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930114/

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