首页 > 编程语言 >Java 匿名内部类调用局部变量

Java 匿名内部类调用局部变量

时间:2023-06-06 17:05:11浏览次数:50  
标签:www Java 内部 局部变量 匿名 final 类中


Java 8 之前,匿名内部类中使用 局部变量,需要强制使用 final 修饰


Java 8 开始匿名内部类使用的外部变量不再被强制用final修饰。

外部变量要么是final的;要么自初始化后值不会被改变

这两种都是可以在匿名内部类中使用且编译通过。

但是 java8只是对‘事实上final’变量可以不声明final标识符而已,其实还是要求final,


参考资料:

1、java为什么匿名内部类的参数引用时final?
https://www.zhihu.com/question/21395848

2、Java语法糖系列五:内部类和闭包
https://www.jianshu.com/p/f55b11a4cec2



标签:www,Java,内部,局部变量,匿名,final,类中
From: https://blog.51cto.com/u_16152603/6426051

相关文章

  • Java 静态构造块异常抛出处理方法
    static{try{privateObjectobj=newObject();}catch(Exceptione){log.error(e);}}静态构造块中的异常不要抛出,否则会造成类初始化异常!......
  • JAVA集合
    文章目录3.1.接口继承关系和实现3.2.List3.2.1.ArrayList(数组)3.2.2.Vector(数组实现、线程同步)3.2.3.LinkList(链表)3.3.Set3.3.1.HashSet(Hash表)3.3.2.TreeSet(二叉树)3.3.3.LinkHashSet3.4.Map3.4.1.HashMap(数组+链表+红黑树)3.4.1.1.JAVA7实现3.4.1.2.JAVA8实现3.4.2.Co......
  • 使用JOL查看java对象内存结构
    JOL(JavaObjectLayout)工具包可以展示java对象在jvm中的结构信息,用来进行内存分析。是由openjdk提供的小工具包。git地址https://github.com/openjdk/jol。因此下面的测试基于hotspot虚拟机环境下。添加依赖<dependency><groupId>org.openjdk.jol</group......
  • java语法特例
    1、当“+”操作中出现字符串时,这个“+”表示字符串连接,而不是算术运算符。但是当表达式中出现多个“+”操作后,在遇到“+”字符串之前还是算术操作符,遇到“+”字符串之后都是字符串连接。System.out.println(1+99+"test");//100testSystem.out.println(1+......
  • javasecript 生成 从2022年到当前季度的所以季度,排倒序
    javasecript 生成从2022年到当前季度的所以季度,排倒序 functiongetQuarter(year,quarter){returnyear+"年"+quarter+"季度";}functiongenerateQuarters(){varcurrentYear=newDate().getFullYear();varcurrentQuarter=Math.floor((......
  • 如何实现Java类隔离加载?
    一什么是类隔离技术只要你Java代码写的足够多,就一定会出现这种情况:系统新引入了一个中间件的jar包,编译的时候一切正常,一运行就报错:java.lang.NoSuchMethodError,然后就哼哧哼哧的开始找解决方法,最后在几百个依赖包里面找的眼睛都快瞎了才找到冲突的jar,把问题解决之后就开始......
  • 24基于java的宠物医院管理系统
    项目背景随着互联网的普及,已经和我们的生活不可分割;宠物渐渐的已经成为了我们的好朋友,宠物医院管理系统可以帮助用户合理的管理宠物,呵护宠物的健康,对宠物起到了一个健康监控的作用;项目介绍系统总体分为3个角色:分别是系统管理员;医生和用户;不能的角色拥有不同的功能权限,下面详......
  • Java-模板生成PDF方式3-HtmlToPDF
    使用thymeleaf做html模板,由xhtmlrenderer/flying-saucer-pdf-openpdf将html转为PDFLGPL和MPL许可pom.xml引入依赖<!--thymeleaf模板引擎--><dependency><groupId>org.springframework.boot</groupId><artifactId>spri......
  • Java-模板生成PDF方式2-PDFBox
    PDFBox文本域+内容流生成PDFBSD许可下的源码开放项目pom.xml引入依赖<!--pdfbox生成PDF--><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version>......
  • Java-模板生成PDF方式1-itext5
    itext模板生成PDFpom.xml引入依赖<!--itext生成PDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.3</version></dependency><!--输出中文--><dep......