java,Android,第18行为什么要定义成final类型?

MainActivity.java
1 package com.example.customdialog;
2 import androidx.appcompat.app.AppCompatActivity;
3 import android.os.Bundle;
4 import android.view.View;
5 import android.widget.Button;
6 public class MainActivity extends AppCompatActivity{
7 @Override
8 protected void onCreate(Bundle savedInstanceState){
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.activity_main);
11 init();
12 }
13 private void init(){
14 Button btn=findViewById(R.id.btn);
15 btn.setOnClickListener(new View.OnClickListener(){
16 @Override
17 public void onClick(View v){
18 final CustomDialog dialog=new CustomDialog(MainActivity.this);
19 dialog.setTitle("提示");
20 dialog.setMessage("您确定要删除信息吗?");
21 dialog.setNegtive("取消");
22 dialog.setPositive("确定");
23 dialog.setOnCustomClickListener(new CustomDialog.
24 OnCustomClickListener(){
25 @Override
26 public void setNegtiveClick(){
27 dialog.dismiss();
28 }
29 @Override
30 public void setPositiveClick(){
31 dialog.dismiss();
32 }
33 });
34 dialog.show();
35 }
36 });
37 }
38 }

第1个回答  2020-07-13
Java中使用final关键字修饰类,主要是为了让其不能修改,提供给所有人使用。
Java还提供了static、public来修饰类,使其不用初始化便可使用。本回答被网友采纳
第2个回答  2020-07-12
因为第23-24行定义的匿名内部类引用了dialog(在第27、31行)。而java有规定:从内部类引用的本地变量必须是最终变量或事实上的最终变量。
第3个回答  2020-07-13
final :最终的
意思是声明的变量是最终形态
相似回答