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

news2025/1/21 18:38:16

介绍

总体说明

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.coloradmin.cn/o/943086.html

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

相关文章

Linux系统运维指南

实验linux操作系统版本为:CentOS-7.6-x86_64-DVD-1810.iso 注意:此文档为讨论性材料,均为个人实验截图及网络收集资源,非终版。 建议安装操作系统的磁盘与存放数据的磁盘分开 系统盘本次配置:50G 生产推荐&…

【校招VIP】校招考点之前端安全和注入

考点介绍: 随着前端的快速发展,各种技术不断更新,前端的安全问题也越来越值得我们重视。千万不要等到项目上线之后才去重视安全问题,到时候被黑客攻击一切都太晚了。今天的专题将讲述前端几大常见安全问题,在校招面试中…

双基证券:预计未来还会有更多政策来吸引增量资金

双基证券表明,8月27日,活泼资本商场五大方针出台:证券买卖印花税折半征收;阶段性收紧IPO节奏;上市房企再融资不受破发、破净和亏损限制;规范控股股东与实践操控人减持行为;融资保证金最低份额由…

MySQL 的隐式转换导致诡异现象的案例一则

正是因为 MySQL 对字符串进行隐式转换时会截断再转,而不是像 Oracle、SQL Server 这些数据库针对这种问题直接报错,所以才出现了这个诡异的问题。 作者:刘晨 网名 bisal ,具有十年以上的应用运维工作经验,目前主要从事…

四---降压型开关稳压器

当开关开通时,电流是斜线上升; 开关关断时,电感、负载、二极管、形成自然的续流回路,电流开始线性减少; 类似当蓄水池的水降低到一定程度,开关会重新打开,通过这样的高频开关操作,就…

财务部发布《企业数据资源相关会计处理暂行规定》

导读 财务部为规范企业数据资源相关会计处理,强化相关会计信息披露,根据《中华人民共和国会计法》和相关企业会计准则,制定了《企业数据资源相关会计处理暂行规定》。 加gzh“大数据食铁兽”,回复“20230828”获取材料完整版 来…

【Terraform学习】使用 Terraform创建Lambda函数启动EC2(Terraform-AWS最佳实战学习)

本站以分享各种运维经验和运维所需要的技能为主 《python》:python零基础入门学习 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8》暂未更新 《docker学习》暂未更新 《ceph学习》ceph日常问题解…

C#,《小白学程序》第六课:队列(Queue)的应用,《实时叫号系统》

医院里面常见的叫号系统怎么实现的&#xff1f; 1 文本格式 /// <summary> /// 下面定义一个新的队列&#xff0c;用于演示《实时叫号系统》 /// </summary> Queue<Classmate> q2 new Queue<Classmate>(); /// <summary> /// 《小白学程序》第…

vue2中使用wangEditor(JS引入)

本文讲的不是npm安装&#xff0c;是下载js本地引入哦~ 想了解vue2和vue3的npm安装的&#xff0c;去这里&#xff1a;用于 Vue React | wangEditor 为了防止内网无法使用&#xff0c;咱不用cdn引入&#xff0c;直接下载js放入本地使用。 第一步&#xff1a;下载wangEditor对应…

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

苹果备货量创新高,潜望镜头立大功,iPhone 15 Pro Max备受瞩目

根据郭明锤的简讯内容&#xff0c;关于苹果公司未来发布的iPhone 15系列&#xff0c;有一些令人振奋的消息。据预测&#xff0c;苹果公司计划于下个月发布iPhone 15系列&#xff0c;其中最高配置的机型iPhone 15 Pro Max备货量预计将占整个系列的35%至40%&#xff0c;这一比例超…

【java】获取当前年份

目录 一、代码示例二、截图示例 一、代码示例 package com.learning;import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.Year; import java.util.Calendar; import java.util.Date;/*** 获取当前年份*/ public class GetCurrentYear {public …

实例046 修改提示字体及颜色

实例说明 如果设置了控件的ToolTip属性&#xff0c;当鼠标移到该控件后&#xff0c;会提示相关的文本&#xff0c;但没有提供对提示字体及颜色的设置属性&#xff0c;如何改变提示文本的样式和字体呢&#xff1f;本例可以设置提示文本的字体及颜色。运行本例&#xff0c;效果如…

无涯教程-Android - 系统架构

Android操作系统是一堆软件组件&#xff0c;大致分为五个部分和四个主要层&#xff0c;如体系结构图中所示。 Linux内核 底层是Linux-Linux 3.6&#xff0c;带有大约115个补丁&#xff0c;这在设备硬件之间提供了一定程度的抽象&#xff0c;并且包含所有必需的硬件驱动程序&am…

分析型CRM的优缺点有哪些?

CRM系统根据其功能和目标的不同&#xff0c;可以分为三种主要类型&#xff1a;运营型CRM、分析型CRM和协作型CRM。本文将进行分析型CRM系统的优缺点分析&#xff0c;帮助您对分析型CRM系统有更深的了解。 什么是分析型CRM系统&#xff1f; 例如Zoho CRM的分析型CRM系统是指通…

一文搞懂常见限流算法:计数器、滑动窗口、漏桶、令牌桶

文章目录 1、计数器算法2、滑动窗口算法3、漏桶算法&#xff08;漏斗算法&#xff09;4、令牌桶算法5、限流算法总结6、限流组件 &#x1f4e2;&#xff1a;在开发高并发系统时&#xff0c;有三把利器用来保护系统&#xff1a;缓存、降级和限流。 限流在很多场景中用来限制并发…

为C# Console应用化个妆

说到Windows的cmd&#xff0c;刻板印象就是黑底白字的命令行界面。跟Linux花花绿绿的界面比&#xff0c;似乎单调了许多。但其实C#开发的Console应用也可以摆脱单调非黑即白的UI。 最近遇到个需求&#xff0c;要在一堆纯文本文件里找指定的关键字&#xff08;后续还要人肉判断…

25 Linux可视化-Webmin和bt运维工具

25 Linux可视化-Webmin和bt运维工具 文章目录 25 Linux可视化-Webmin和bt运维工具25.1 Web运行环境简介25.2 Webmin的安装及使用25.2.1 安装webmin25.2.2 Webmin使用演示 25.3 bt(宝塔)的安装及使用25.3.1 安装宝塔25.3.2 宝塔Web登录Linux服务器25.3.3 找回宝塔登录密码 学习视…

每日两题 226翻转二叉树 1026节点与其祖先之间的最大差值

226 题目 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;root [2,1,3] 输出&#xff1a;[2,3,1]示…

NineData X SelectDB 联合发布会,即将上线!

8月30日晚上19:00&#xff0c;由 NineData 和 SelectDB 共同举办的主题为“实时数据驱动&#xff0c;引领企业智能化数据管理”的线上联合发布会&#xff0c;即将如期上线&#xff01; 本次发布会将聚焦于实时数据仓库技术和数据开发能力&#xff0c;展示SelectDB新一代实时数据…