开发者社区> 问答> 正文

内部类使用一个在外部定义的对象编译器要求其参数引用为什么是final的

内部类希望使用一个在外部定义的对象,编译器要求其参数引用是final的,为什么? 或者说这样规定有什么意义或者出于什么样的目的。
screenshot

展开
收起
蛮大人123 2016-02-25 11:47:02 2319 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    因为虽然匿名内部类在方法的内部,但实际编译的时候,内部类编译成Outer.Inner,这说明内部类所处的位置和外部类中的方法处在同一个等级上,外部类中的方法中的变量或参数只是方法的局部变量,这些变量或参数的作用域只在这个方法内部有效。因为编译的时候内部类和方法在同一级别上,所以方法中的变量或参数只有为final,内部类才可以引用。

    2019-07-17 18:47:21
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
继承与功能组合 立即下载
低代码开发师(初级)实战教程 立即下载