当前位置: 首页 > 面试题库 >

声明最终变量,但稍后设置

狄阳华
2023-03-14
问题内容

我知道这是一个非常简单的话题,但是我真的很想把它包裹住。

这是我想要做的,但是不喜欢final修饰符。有没有其他方法可以达到我想要的效果?基本上,我想确保id在整个活动过程中都不会更改。

private final long mId;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    mId = getIntent().getLongExtra(ID_KEY, -1);
}

我应该指出,这是Android代码。感谢您的所有帮助。我不担心getter或setter或任何更改我的代码的人。我问的原因是为了将来证明我的代码供下一位开发人员接任。我发现这篇文章也有助于阐明一些内容。Android-活动构造函数与onCreate


问题答案:

final只能在构造函数或初始化程序中设置变量。常规方法不能更改声明的变量的值final



 类似资料:
  • 我知道这个话题听起来像是重复的,但我并不是想在这里调试这个问题,而是想绕过它。 我的程序应该做的是:对于文件夹中的每个文件,创建一个新按钮。如果您单击此按钮,请输入您刚输入的文件夹的名称。 现在我遇到的问题是,“fileName”变量需要放在final中,因为Java提供的是对象的指针,而不是值本身。但如果我这样做,则只会为任何按钮发送最后选择的文件名。

  • 我正在尝试让一个按钮将其值与其他变量进行比较。在onClick方法中,我收到一个错误,说变量在内部类中被访问,需要声明为最终变量。问题是变量应该被更改,所以我无法使其成为最终变量。我如何解决这个问题?这是我的代码:

  • let和const是JavaScript里相对较新的变量声明方式。 像我们之前提到过的,let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。 const是对let的一个增强,它能阻止对一个变量再次赋值。 因为TypeScript是JavaScript的超集,所以它本身就支持let和const。 下面我们会详细说明这些新的声明方式以及为什么推荐使用它们来代替v

  • 问题内容: 我不明白这个脚本有什么问题 我希望它在表中插入10个值,但是第二行有错误。 问题答案: MySQL不支持执行存储过程代码的匿名块。 您需要创建一个包含该代码的存储过程,然后调用它。 另外,您在插入语句的末尾缺少分号。我修好了 您可能还想使用concat()而不是+来生成名称,但是我将把更改留给您。 创建过程: 调用过程:

  • 主要内容:类型断言(Type Assertion),类型推断,变量作用域变量是一种使用方便的占位符,用于引用计算机内存地址。 我们可以把变量看做存储数据的容器。 TypeScript 变量的命名规则: 变量名称可以包含数字和字母。 除了下划线 _ 和美元 $ 符号外,不能包含其他特殊字符,包括空格。 变量名不能以数字开头。 变量使用前必须先声明,我们可以使用 var 来声明变量。 我们可以使用以下四种方式来声明变量: 声明变量的类型及初始值: 例如: 声明变量的类型,

  • 问题内容: 学习Python,并且有一些基本的疑问。 1.我已经看到变量声明(这里的路径)为 有时,没有显式声明,而是通过进行初始化。 我了解的目的,但建议在其他任何函数中声明变量。 2.如何创建变量以保存自定义类型? 问题答案: 好的,首先是第一件事。 Python中没有“变量声明”或“变量初始化”之类的东西。 我们简单地将其称为“分配”,但可能应该仅将其称为“命名”。 赋值的意思是“现在此名称