gpt4 book ai didi

Java - 无法引用非最终变量

转载 作者:行者123 更新时间:2023-11-29 07:53:21 25 4
gpt4 key购买 nike

安卓新手。我应该编辑什么以摆脱奇怪的“无法引用以不同方法定义的内部类中的非最终变量按钮?

@Override
public void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
setContentView(R.layout.activity_main);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
//Listeneři
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
button1.setText("ok");

最佳答案

你在做什么是不可能的。

JLS # chapter 8

Any local variable, formal parameter, or exception parameter used but not declared in an inner class must be declared final.

Any local variable used but not declared in an inner class must be definitely assigned (§16) before the body of the inner class.

内部类中使用该变量之前,将该变量设置为final,以便获得使用它的权限。

final Button button1 = (Button)findViewById(R.id.button2);

明智的做法是,如果您在监听器中使用它们,请将 remaining 设置为 final

关于Java - 无法引用非最终变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19606383/

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