47 lines
2.5 KiB
Markdown
47 lines
2.5 KiB
Markdown
# 代码审查报告
|
|
|
|
**文件:** `data\demo-pmd\src\com\demo\errorprone\extra\CallSuperDemo.java`
|
|
**语言:** java
|
|
**耗时:** 104.2s
|
|
**分析工具:** pmd
|
|
|
|
---
|
|
|
|
总计: 10 | 错误: 3 | 警告: 7 | 建议: 0
|
|
|
|
静态分析 · 7 个问题
|
|
|
|
- 🔴 `pmd:SystemPrintln` L34
|
|
使用了System.out/err
|
|
建议: 在Android中应使用日志框架,例如用 android.util.Log.d("CallSuperMain", "demo call super") 替代 System.out.println,并确保导入 Log 类。
|
|
- 🟡 `pmd:AtLeastOneConstructor` L11
|
|
每个类应至少声明一个构造函数
|
|
建议: 为类添加一个无参构造函数,并调用 super()。例如:public MissingSuperFirst() { super(); }
|
|
- 🟡 `pmd:CallSuperFirst` L13
|
|
应在方法开头调用super
|
|
建议: 在onCreate方法的第一行调用 super.onCreate(bundle),然后再执行其他操作。
|
|
- 🟡 `pmd:CommentDefaultAccessModifier` L17
|
|
方法'foo()'缺少默认访问修饰符的注释
|
|
建议: 为默认包私有访问权限添加注释,例如:/* default */ void foo();或者如果方法仅在类内部使用,可以显式声明为 private。
|
|
- 🟡 `pmd:AtLeastOneConstructor` L22
|
|
每个类应至少声明一个构造函数
|
|
建议: 为类添加一个无参构造函数,并调用 super()。例如:public MissingSuperLast() { super(); }
|
|
- 🟡 `pmd:CallSuperLast` L24
|
|
应在方法末尾调用super
|
|
建议: 在onPause方法的最后一行调用 super.onPause(),确保父类生命周期逻辑正确执行。
|
|
- 🟡 `pmd:CommentDefaultAccessModifier` L28
|
|
方法'foo()'缺少默认访问修饰符的注释
|
|
建议: 为默认包私有访问权限添加注释,例如:/* default */ void foo();或者如果方法仅在类内部使用,可以显式声明为 private。
|
|
|
|
AI 审查 · 3 条建议
|
|
|
|
- 🔴 [AI] [bug] `activity-class-not-public` L11
|
|
**Activity子类未声明为public**
|
|
在Android中,Activity类必须声明为public,否则系统可能无法通过反射实例化并启动。MissingSuperFirst类当前为包私有,应在类声明中添加public修饰符。
|
|
- 🔴 [AI] [bug] `activity-class-not-public` L22
|
|
**Activity子类未声明为public**
|
|
MissingSuperLast类同样应声明为public,确保系统能够实例化。
|
|
- 🟡 [AI] [design] `no-useless-main` L33
|
|
**包含无用的main方法**
|
|
CallSuperMain类中的main方法在Android应用中不会作为入口执行,Android应用由Activity生命周期驱动。此方法可能是遗留代码或用于本地测试,建议删除或将其抽取到独立的测试类中使用JUnit进行测试。
|