开发者社区 问答 正文

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

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

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

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

    2019-07-17 18:47:21
    赞同 展开评论
问答分类:
问答地址: