gpt4 book ai didi

android - 如何强制类声明最终变量?

转载 作者:太空宇宙 更新时间:2023-11-03 12:32:19 24 4
gpt4 key购买 nike

目前,我创建了一个像这样的抽象类:

public abstract class MyClass {
public final static String TAG;
...
}

但它给我一个没有初始化最终变量的错误。然后我尝试从构造函数初始化它,但它也没有工作(给出相同的错误加上另一个尝试将值设置为最终变量的错误),尽管许多 stackoverflow 帖子说这确实有效......

public abstract class MyClass {
public final static String TAG;

public MyClass(String u){
this.TAG = u;
}
}

似乎只有在声明变量时才需要分配 final 变量。这个对吗?我怎样才能做到这一点?

最佳答案

你不能因为 static 关键字。 static final 保证变量的值在应用程序的整个生命周期内不会改变。当您尝试在构造函数中初始化它时,您将其值绑定(bind)到特定实例,从而破坏了常量 的概念。由于您希望每个子类都有不同的值,因此您可以更改代码,例如:

public abstract class MyClass {
protected final String mTag;

public MyClass(String u){
mTag = u;
}
}

这样 mTag 只能从 MyClass 的子类访问。或者您也可以在每个子类中将其声明为 constant,省略构造函数的初始化。例如

public final static String TAG = YourClassName.class.getSimpleName(); 

关于android - 如何强制类声明最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29842190/

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