checkstyle检查Java编程样式:识别应该被定义为final的类

介绍

总体说明

checkstyle可以使用FinalClass检查应该被定为final的类。如果违反了,就会报违反项:
https://checkstyle.sourceforge.io/checks/design/finalclass.html

checkstyle规则集文件对FinalClass模块的配置:
在这里插入图片描述

哪些类可以被定义final的

原则是不允许被继承的类用final修饰。

在具体判定方法上,checkstyle认为如下类要用final修饰:

  • 一个类只包含private的构造函数。

下面的类会被checkstyle跳过:

  • 是匿名内部类的父类。

示例

只有匿名构造函数的类被定义为final的—checkstyle检查通过

在这里插入图片描述

只有匿名构造函数的类没有被final修饰—checkstyle检查报违反项

在这里插入图片描述
在这里插入图片描述

一个类有一个private构造函数和一个public构造函数,不被定义为final的—checkstyle检查通过

下面的类Parent有一个private构造函数,和一个public构造函数,所以不需要定义为final的:

package com.thb;public class Parent {/*** 整型字段.*/private int field1;/*** 字符串字段.*/private String filed2;/*** 构造函数.* @param value*/public Parent(final String value) {this.filed2 = value;this.field1 = 0;}/*** 私有构造函数.* @param value*/private Parent(int value) {this.field1 = value;this.filed2 = "hello";}
}

是匿名内部类的父类,不被定义为final的—checkstyle检查通过

在这里插入图片描述

外部类只有private构造函数,含有匿名内部类,但不是该匿名内部类的父类,外部类定义为final的—checkstyle检查通过

下面的父类只含有private的构造函数,含有一个匿名内部类,但不是该匿名内部类的父类,所以父类要被定义为final的:
在这里插入图片描述

外部类只有private构造函数,含有匿名内部类,但不是该匿名内部类的父类,外部类没有定义为final的—checkstyle检查报违反项

下面的父类只含有private的构造函数,含有一个匿名内部类,但不是该匿名内部类的父类,父类没有定义为final的,checkstyle检查报违反项:
在这里插入图片描述

在这里插入图片描述

接口中的嵌套类只有private构造函数,该嵌套类没有定义为final的—checkstyle检查报违反项

在这里插入图片描述
在这里插入图片描述

接口中的嵌套类只有private构造函数,该嵌套类定义为final的—checkstyle检查通过

在这里插入图片描述

注解中的嵌套类只有private构造函数,该嵌套类没有定义为final的—checkstyle检查报违反项

在这里插入图片描述
在这里插入图片描述

注解中的嵌套类只有private构造函数,该嵌套类定义为final的—checkstyle检查通过

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React笔记(二)JSX

一、JSX JSX是javascript XML的简写,实际上是javascript的扩展,既有javascript的语法结构,又有XML的结构 1、JSX的规则要求 jsx必须要有一个根节点 如果不想产生无用的根标签,但是还要遵守JSX的语法的要求,可以使用…

Docker harbor 私有仓库的部署和管理

目录 一、什么是Harbor 二、Harbor的特性 三、Harbor的构成 四、部署配置Docker Harbor 1. 首先需要安装 Docker-Compose 服务 2.部署 Harbor 服务 3.使用harbor仓库 (1)项目管理 (2)用户管理 一、什么是Harbor Harbor …

飞桨中的李宏毅课程中的第一个项目——PM2.5的预测

所谓的激活函数,就是李宏毅老师讲到的sigmoid函数 和 hard sigmoid函数 ,ReLU函数那些 现在一点点慢慢探索,会成为日后想都做不到的经历,当你啥也不会的时候,才是慢慢享受探索的过程。 有一说一,用chatGP…

安卓版yolo-fastest

安卓版本yolofastest效果测试 安卓配置OPENCV4ANDROID,见我的博客一篇文章opencv4dandroid配置 这个不需要使用JNI,十分简单的配置 说真的,其实只调用OPENCV的函数,自己写的代码不多,使用OPENCV4ANDROID和JNI的时间差…

项目经理常用工具01

主要工具 表达工具—SCRTV方法 情境 Scene:明确问题:是什么?冲突 Confilict:提出疑问:怎么了?原因 Reason:分析原因:为什么?策略 Tactics:进行决策:怎么办…

数据建模在MES管理系统中的作用,以及合理设计

随着信息化的快速发展,MES系统解决方案在企业中的应用越来越广泛。作为实现生产过程数字化的重要组成部分,MES系统扮演着监控、控制和优化生产运营的关键角色。而在MES系统中,数据建模是实现高效生产管理的重要环节之一。本文将探讨数据建模在…

自定义node-red节点中,如何编写节点的配置信息弹窗

前言 最近有读者通过博客向我咨询,在自定义node-red节点时,如何编写该节点的配置页面,就是我们通常见到的,双节节点打开的信息弹窗。如下图: 上面两张图,展示了inject节点与mqtt in 节点的配置弹窗。 在弹窗中,除了上面的删除,取消,完成,和下面的失效按钮。 中间…

Docker容器中的Postgresql备份脚本异常解决办法

本文基于K8S中Docker容器对postgres数据库进行备份的操作,编写好脚本后,手动执行脚本是正常的,但是crontab定时实行却报错,报错信息为kubectl command not found,提示没有找到kubectl指令。 本文主要介绍对该报错信息…

二级MySQL(二)——编程语言,函数

SQL语言又称为【结构化查询语言】 请使用FLOOR(x)函数求小于或等于5.6的最大整数 请使用TRUNCATE(x,y)函数将数字1.98752895保留到小数点后4位 请使用UPPER()函数将字符串‘welcome’转化为大写…

C语言的发展及特点

1. C语言的发展历程 C语言作为计算机编程领域的重要里程碑,其发展历程承载着无数开发者的智慧和创新。C语言诞生于20世纪70年代初,由计算机科学家Dennis Ritchie在贝尔实验室首次推出。当时,Ritchie的目标是为Unix操作系统开发一门能够更方便…

大数据平台安全主要是指什么安全?如何保障?

大数据时代已经来临,各种数据充斥着我们的生活与工作。随着数据的多样性以及复杂性以及大量性,大数据平台诞生了。但对于大数据平台大家都不是很了解,有人问大数据平台安全主要是指什么安全?如何保障? 大数据平台安全…

睿趣科技:抖音开网店卖玩具怎么样

近年来,随着社交媒体平台的飞速发展,抖音作为一款短视频分享应用也迅速崭露头角。而在这个充满创业机遇的时代背景下,许多人开始探索在抖音平台上开设网店,尤其是卖玩具类商品,那么抖音开网店卖玩具究竟怎么样呢? 首先…

如何清空小程序会员卡的电子票

​电子票不仅方便了用户的购票和消费,还提升了用户的购物体验和忠诚度。然而,在一些特殊情况下,可能需要手动清空会员的电子票。那么,下面我们就来探讨一下在小程序中如何手动清空会员的电子票。 1. 找到指定的会员卡。在管理员后…

Nginx详解 二:配置文件部分

文章目录 1. Nginx 配置文件1.1 主配置文件1.2 子配置文件1.3 全局配置1.3.1 修改启动的进程数1.3.2 cpu和work进程绑定(nginx调优)1.3.3 修改PID路径1.3.4 nginx进程的优先级(work进程的优先级)1.3.5 调试work进程打开的文件的个…

数据结构——栈

栈 栈的理解 咱们先不管栈的数据结构什么,先了解栈是什么,栈就像一个桶一样,你先放进去的东西,被后放进的的东西压着,那么就需要把后放进行的东西拿出才能拿出来先放进去的东西,如图1,就像图1中…

2023腾讯云服务器多少钱一年?CPU内存带宽配置报价

腾讯云服务器租用价格表:轻量应用服务器2核2G4M带宽112元一年,540元三年、2核4G5M带宽218元一年,2核4G5M带宽756元三年、云服务器CVM S5实例2核2G配置280.8元一年、GPU服务器GN10Xp实例145元7天,腾讯云服务器网长期更新腾讯云轻量…

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2)

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2) 1. 安装npm2. 安装 Vue CLI3. 创建 vue_demo1 项目(官网)3.1 创建 vue_demo1 项目3.1.1 创建项目3.1.2 解决 sudo 问题 3.2 查看创建的 vue_demo1 项目3…

【GAMES202】Real-Time Environment Mapping2—实时环境光照2

一、Shadow from Environment Lighting 上篇我们说了给定Environment,如何计算一个着色点的Shading,但没说Shadow。而事实上,实时渲染中很难做到环境光的Shadow。 原因也很容易想到,一种观点我们把环境光当成多光源问题&#xff…

PCB电路板电压电流监测软件

PCB电路板电流监测软件详细设计说明书是一个详细描述软件系统设计和实现的文档,它提供了软件系统的架构、功能模块、接口设计、数据存储和处理、界面设计、数据库设计、系统测试、部署和维护计划等方面的详细信息。模拟量采集/老化房采集软件 该文档的目的是为了确保…

ssm+vue理发店会员管理系统源码和论文

ssmvue理发店会员管理系统源码和论文089 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用&a…