2.7 KiB
2.7 KiB
代码审查报告
文件: data\demo-pmd\src\com\demo\BadCase\PackageCaseDemo.java
语言: java
耗时: 109.8s
分析工具: pmd
总计: 7 | 错误: 1 | 警告: 5 | 建议: 1
静态分析 · 4 个问题
- 🔴
pmd:SystemPrintlnL8 使用了 System.out/err 进行输出 建议: 不要直接使用System.out.println,应改用日志框架(如java.util.logging.Logger或 SLF4J)输出。例如:Logger.getLogger(PackageCaseDemo.class).info("bad package case");,并添加相应导入和 Logger 字段。 - 🟡
pmd:PackageCaseL4 包名包含大写字母 建议: 包名应全部小写,以符合 Java 命名规范。建议将BadCase改为badcase,即package com.demo.badcase;。 - 🟡
pmd:AtLeastOneConstructorL6 每个类应至少声明一个构造器 建议: 为类PackageCaseDemo添加显式构造器。若类设计为不可实例化,应添加私有构造器;否则添加默认可见性的构造器。例如:PackageCaseDemo() { }。 - 🟡
pmd:CommentDefaultAccessModifierL7 方法 'm()' 缺少默认访问修饰符的注释 建议: 该方法使用默认(包私有)访问权限,请添加注释说明,例如/* default */或// default。建议:/* default */ void m() {
AI 审查 · 3 条建议
- 🟡 [AI] [design]
explicit-access-modifierL6 类和方法使用隐式包私有访问权限PackageCaseDemo类和m()方法均未声明访问修饰符,使用包私有默认权限。这会降低可维护性,外部包无法访问,且意图不明确。若允许外部使用,应显式声明public;若仅限包内使用,至少按 PMD 要求添加注释,但自定义访问修饰符更清晰。 建议: 根据设计意图显式添加修饰符。若计划作为公开 API,写为public class PackageCaseDemo { public void m() { ... } };若希望保持包私有,可保留现状但补充注释。 - 🟡 [AI] [design]
method-could-be-staticL7 方法 m() 可以声明为 static 方法m()没有访问任何实例字段或实例方法,因此不需要实例上下文。将其声明为static可以避免强制创建无状态实例,并明确表达该方法属于类级别。 建议: 将void m()改为static void m();如果只是打印固定文本,建议同时将方法重命名为描述性名称,如printBadPackageMessage。 - 🔵 [AI] [design]
missing-javadocL6 类和方法缺少 Javadoc 文档注释PackageCaseDemo类和m()方法没有 Javadoc 注释,无法说明类目的、方法和预期行为。虽然这是演示代码,但良好的公共 API 应提供文档注释。 建议: 为类添加 Javadoc:/** ... */,为方法添加/** 输出包名错误提示 */。