final修饰符使用中遇到的一些问题
文章目录
- final修饰符
- 1. final不能用来修饰构造方法
- 2. final修饰变量的一些注意问题
- 2.1 final修饰成员变量
- 2.2 final修饰引用类型
- 2.2.1 演示代码中lombok链式编程介绍
final修饰符
final具有“不可改变”的含义,它可以修饰非抽象类、非抽象成员方法和变量。
- 用final修饰的类不能被继承,没有子类
- 用final修饰的方法不能被子类的方法覆盖(Override)
- 用final修饰的变量表示常量,只能被赋值一次
1. final不能用来修饰构造方法
final不能用来修饰构造方法,因为“方法覆盖(Override)”仅适用于类的成员方法,而不适用于类的构造方法,父类的构造方法和子类的构造方法之间不存在覆盖(Override)关系,所以用final修饰构造方法是无意义的。
2. final修饰变量的一些注意问题
2.1 final修饰成员变量
final修饰成员变量,必须显示初始化,否则会产生编译错误

- final修饰的实例变量,可以在定义变量时候或者在构造方法中进行初始化
public class TestFinal1 {final int i=1;final int j;public TestFinal1(int j) {this.j = j;}
}
public class TestFinal1 {final int i;final int j;public TestFinal1(int i, int j) {this.i = i;this.j = j;}
}
- final修饰的静态变量,可以再变量定义时进行初始化,或者在静态代码块中初始化
public class TestFinal1 {static final int i=1;static final int j;static {j=2;}
}
2.2 final修饰引用类型
final修饰引用类型变量,那么该变量只能始终引用一个对象,但是对象的内容可以改变
@Data
@Accessors(chain = true)
public class Person {private String name;private int age;
}
public class TestFinal {public static void main(String[] args) {List<Person> personList = new ArrayList<Person>(){{add(new Person().setAge(25).setName("张三"));add(new Person().setAge(28).setName("李四"));add(new Person().setAge(34).setName("王五"));}};List<Person> newPersonList = new TestFinal().method(personList);System.out.println(newPersonList);}public List<Person> method(final List<Person> personList){personList.add(new Person().setAge(29).setName("朱六"));return personList;}
}
输出结果:
[Person(name=张三, age=25), Person(name=李四, age=28), Person(name=王五, age=34), Person(name=朱六, age=29)]
2.2.1 演示代码中lombok链式编程介绍
在实体上面添加注解@Accessors(chain = true),如:
@Data
@Accessors(chain = true)
public class Person {private String name;private int age;
}
那么就可以针对该实体进行如下链式编程操作
new Person().setAge(25).setName("张三")
相关文章:
final修饰符使用中遇到的一些问题
文章目录final修饰符1. final不能用来修饰构造方法2. final修饰变量的一些注意问题2.1 final修饰成员变量2.2 final修饰引用类型2.2.1 演示代码中lombok链式编程介绍final修饰符 final具有“不可改变”的含义,它可以修饰非抽象类、非抽象成员方法和变量。 用final…...
好记又实用的获取电脑型号方法
个人常用的方法 方法二最好记又好用。 方法一 dxdiag命令 按下键盘WINR调出运行在输入框输入dxdiag命令后,按下回车;进入DirectX诊断工具,便可查看系统型号等信息。 这里就会显示系统型号。 方法二 设备和打印机 控制面板-查看方式-小图…...
@Transactional配置详解
一:事务注解Transactional,属性propagation的7个配置 PROPAGATION_REQUIRED -- 支持当前事务,如果当前没有事务,就新建一个事务。,默认配置,也是常用的选择。 PROPAGATION_SUPPORTS -- 支持当前事务&#…...
性能测试面试题汇总
稳定性测试的怎么挑选的接口? 1、频繁使用的接口:选择那些被频繁使用的接口,因为这些接口可能会面临更大的负载和并发访问,从而可能导致性能问题。 2、核心功能接口:选择那些实现系统核心功能的接口,因为这…...
vue权限控制和动态路由
思路 登录:当用户填写完账号和密码后向服务端验证是否正确,验证通过之后,服务端会返回一个token,拿到token之后(我会将这个token存贮到localStore中,保证刷新页面后能记住用户登录状态)…...
利用正则表达式删掉代码中的所有注释-pycharm为例
首先删除注释 打开您想要删除注释的Python文件。 使用快捷键 Ctrl Shift R 打开 "Replace in Files"(在文件中替换)对话框。 在 "Find"(查找)框中输入以下正则表达式,以查找所有行中的注释内容…...
【java基础】内部类、局部内部类、匿名内部类、静态内部类
内部类 内部类就是定义在另一个类中的类。我们使用内部类的原因主要有以下两点 内部类可以对同一个包中的其他类隐藏内部类方法可以访问定义这个类的作用域中的数据,包括原本私有的数据 public class A {class B {} }我们使用内部类可以访问外部类的所有属性&…...
react renderProps学习记录
react renderProps学习记录1.引入2.改一下呢3.再改一下呢4.总结一下如何向组件内部动态传入带内容的结构(标签)?children propsrender props1.引入 上代码: import React, { Component } from react import ./index.css export default class Parent extends Com…...
关于tf.gather函数batch_dims参数用法的理解
关于tf.gather函数batch_dims参数用法的理解0 前言1. 不考虑batch_dims2. 批处理(考虑batch_dims)2.1 batch_dims12.2 batch_dims02.3 batch_dims>22.4 batch_dims再降为12.5 再将axis降为12.6 batch_dims<02.7 batch_dims总结3. 补充4. 参数和返回值5. 其他相关论述6. 附…...
日常操作linux常用命令
cd /mnt/opt/cqstt/logs/stt-erp docker logs -f --tail1000 stt-erp # 查看物理CPU个数 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l # 查看每个物理CPU中core的个数(即核数) cat /proc/cpuinfo| grep "cpu cores"| uniq # 查看逻辑CPU的…...
【Java集合框架】篇二:Collection接口方法
JDK不提供此接口的任何直接实现类,而是提供更具体的子接口(如:Set和List)去实现。 Collection 接口是 List和Set接口的父接口,该接口里定义的方法既可用于操作 Set 集合,也可用于操作 List 集合。方法如下…...
PHP入门指南:简单易学的语法和丰富的调试工具与安全性最佳实践
PHP是一种非常流行的服务器端编程语言,它被广泛地应用于Web开发中。如果您想学习Web开发,那么PHP是一个非常好的选择。在本文中,我将介绍PHP的一些基础知识,包括语法、变量、函数、数组、数据库连接、调试和安全性等。PHP的语法PH…...
前端面试题--HTML篇
一、src和href的区别src指向外部资源的位置,指向的内容会嵌入到文档中当前标签所在的位置;href指向网络资源的位置,建立和当前元素或当前文档之间的链接。二、对HTML语义化的理解根据内容的结构化,选择合适的标签。优点࿱…...
SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮
导入elasticsearch依赖在pom.xml里加入如下依赖:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency>非常重要:检查依赖版本…...
常用Swagger注解汇总
常用Swagger注解汇总 前言 在实际编写后端代码的过程中,我们可能经常使用到 swagger 注解,但是会用不代表了解,你知道每个注解都有什么属性吗?你都用过这些属性吗?了解它们的作用吗?本文在此带大家总结一下…...
关于 TypeScript 声明文件
declare var 声明全局变量declare function 声明全局方法declare class 声明全局类declare enum 声明全局枚举类型declare namespace 声明(含有子属性的)全局对象interface 和 type 声明全局类型export 导出变量export namespace 导出(含有子…...
SpringBoot学习-原理篇
SpringBoot原理篇springboot技术本身就是为了加速spring程序的开发的,可以大胆的说,springboot技术没有自己的原理层面的设计,仅仅是实现方案进行了改进。将springboot定位成工具,你就不会去想方设法的学习其原理了。就像是将木头…...
目标检测YOLOv5数据集怎么找?
完整的配置-标注-训练-识别在我这篇博客小白YOLOv5全流程-训练实现数字识别_yolov5数字识别_牛大了2022的博客-CSDN博客 模型部分剖析可以看我每周深度学习笔记部分。关于训练的数据集怎么搞很多人问过我,我在这篇文章给大家一点我的经验和建议。 数据集是什么 简…...
安卓短信自动填充踩坑
安卓短信自动填充踩坑 前言 最近弄了个短信自动填充功能,一开始觉得很简单,不就是动态注册个广播接收器去监听短信消息不就可以了吗?结果没这么简单,问题就出在机型的适配上。小米的短信权限、荣耀的短信监听都是坑,…...
【抽象类和接口的区别】
抽象类和接口都是Java中实现多态的机制,它们都是用来约束子类必须要实现的方法。但是它们有以下区别: 实现方式 实现方式:抽象类是一个类,而接口是一个接口。一个类只能继承一个抽象类,但可以实现多个接口。 构造方…...
RMBG-1.4动态演示:AI净界处理长发人物的流畅抠图过程
RMBG-1.4动态演示:AI净界处理长发人物的流畅抠图过程 1. 引言:当抠图遇上飘逸长发 你有没有遇到过这样的烦恼?想给一张长发飘飘的人像照片换个背景,结果发现发丝边缘怎么都处理不干净,要么像被狗啃过一样参差不齐&am…...
3.23-3.25笔记
这期实现温湿度采集、光照强度监测、智能设备控制(加湿器、PWM 调光 LED、PWM 调速风扇)确定引脚,根据原理图找出可以使用的引脚开关。根据手册信息PWM口GPIO0_D0和GPIO0_C6,把设备树GPIO0_D0做5G的复位disable,再加入…...
LibreOffice无界面转换实战:用Python在Linux服务器实现DOCX批量转PDF
LibreOffice无界面转换实战:用Python在Linux服务器实现DOCX批量转PDF 在当今企业级文档处理流程中,自动化转换办公文档格式已成为提升效率的关键环节。对于部署在Linux服务器上的文档处理系统而言,如何在不依赖图形界面的情况下,稳…...
Win10下Office16宏编辑器崩溃?3种修复VBE6EXT.OLB加载失败的实战方法
Win10下Office16宏编辑器崩溃?3种修复VBE6EXT.OLB加载失败的实战方法 每次打开VB编辑器就遭遇内存溢出弹窗,这种体验就像被卡在无限循环的代码里——明明只是想在Excel里跑个简单宏,却要面对满屏的"VBE6EXT.OLB加载失败"警告。作为…...
逆流而上,逐光而行:光伏微逆的技术探索之路
交错反激光伏并网微逆:软件源程序硬件资料详细设计说明文档 产品介绍: 本项目用于单相光伏并网微型逆变器。 前级采用交错反激拓扑生成馒头波,后级采用SCR拓扑反向得到正弦波,带有:MPPT、锁相环、孤岛检测。 本项目支持…...
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战
消费级显卡也能跑!cv_resnet101_face-detection_cvpr22papermogface GPU算力适配实战 1. 项目简介与核心价值 今天给大家分享一个特别实用的人脸检测工具——基于MogFace模型的高精度人脸检测系统。这个工具最大的亮点就是消费级显卡就能流畅运行,不需…...
高效安全备份QQ空间历史说说:GetQzonehistory全方位使用指南
高效安全备份QQ空间历史说说:GetQzonehistory全方位使用指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 功能价值:为什么选择GetQzonehistory? …...
HunyuanVideo-FoleyGPU算力优化实践:24GB显存利用率提升30%实测分析
HunyuanVideo-FoleyGPU算力优化实践:24GB显存利用率提升30%实测分析 1. 引言 在视频内容创作领域,HunyuanVideo-Foley作为一款集视频生成与AI音效合成于一体的先进工具,正逐渐成为专业创作者的首选。然而,其强大的功能背后是对硬…...
Java: 手动实现DeepSeek R1工具调用,基于ReAct与Spring AI的实践指南
1. DeepSeek R1工具调用的现状与挑战 DeepSeek R1作为当前热门的开源大模型,在实际应用中经常会遇到需要调用外部工具的场景。但很多开发者在使用过程中发现,当前版本的DeepSeek R1并不支持原生的工具调用功能。这意味着当我们想让模型执行诸如查询天气、…...
实战对比:Vamana/HNSW/NSG三大图算法在百维向量搜索中的性能差异
百维向量搜索实战:Vamana/HNSW/NSG三大图算法性能横评 在当今数据爆炸的时代,高效处理高维向量搜索已成为推荐系统、图像识别和自然语言处理等领域的核心技术瓶颈。面对百维甚至更高维度的向量数据,传统暴力搜索方法早已力不从心,…...
