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