【发布时间】:2020-01-20 16:55:35
【问题描述】:
我在一个类中有一个方法:
public boolean tryFile() throws IOException {
File file = File.createTempFile("test", "dat");
file.deleteOnExit();
try (FileOutputStream fos = new FileOutputStream(file)) {
fos.write(20);
}
return file.exists();
}
根据 OpenClover 文档:
方法复杂度
单个方法的圈复杂度。计算如下:
空方法复杂度 == 1
简单语句复杂度 == 0
切换块复杂度 == 案例语句数
尝试 catch 块复杂度 == catch 语句数
三元表达式复杂度 == 1
布尔表达式复杂度 == && 或 || 的数量在表达
在 OpenClover(4.4.1 版)生成的报告中,此方法的复杂度等于 3。为什么?它是如何计算的?
PS。例如,在 JaCoCo 报告中,我看到此方法的 Ctx=1。
【问题讨论】: