m0_51649309 2022-03-26 13:57 采纳率: 20%
浏览 13
已结题

为啥相似的代码在android studio 与 eclipse 上结果不同

问题遇到的现象和发生背景

在android studio里创建监听器的时候为什么可以访问非final的外部变量?同样的代码在Eclipse上跑就要求外部变量为final的呢?

问题相关代码,请勿粘贴截图

android studio
test

public class test {
public void h() {
test2 a = new test2();
int adsf = 32;
test2.inner sd = a.new inner() {
public void f() {
Log.i("msg",String.format("%d",adsf));
}
};
sd.f();
}
}
test2

public class test2 {
public class inner{
public void f(){

    }
}

}
MainActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test x = new test();
x.h();

以下是eclipse中的代码
test
public class test {
public void h() {
test2 a = new test2();
int adsf = 32;
test2.inner inner = a.new inner() {
public void f() {
System.out.println(adsf);
//这里报错显示adsf必须被final修饰
}
};
}
}
test2
public class test2 {
public class inner{
public void f(){

    }
}

}

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

1条回答 默认 最新

  • 立青_ 2022-03-26 14:26
    关注

    你这代码贴的真是....

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月3日
  • 已采纳回答 3月26日
  • 创建了问题 3月26日

悬赏问题

  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加
  • ¥15 用ns3仿真出5G核心网网元
  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题