You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Detekt禁用Kotlin标准库的error()方法调用?

解决Detekt无法捕获kotlin.error()调用的问题

问题根因

kotlin的error()是kotlin包下的顶层函数,你之前的配置写法不符合Detekt ForbiddenMethodCall规则的方法签名匹配规范,导致规则无法精准识别该函数调用。

正确配置方案

ForbiddenMethodCall规则匹配顶层函数时,必须使用完整包名.函数名(参数类型)的格式。针对标准库中error(message: Any)的签名,正确配置如下:

ForbiddenMethodCall:
  active: true
  methods:
    - 'kotlin.io.print'
    - 'kotlin.io.println'
    - 'kotlin.error(kotlin.Any)'

原配置失效的原因

  • error(kotlin.Any)、error()、error、kotlin.error这些写法要么缺失完整包名,要么参数签名不完整,Detekt无法定位到kotlin包下的目标顶层函数。
  • 顶层函数的匹配必须严格指定完整包路径+函数名+参数类型签名,不能省略任一关键部分。

验证方式

修改配置后执行./gradlew detektMain,代码中所有error("提示文本")或error(任意值)的调用都会被规则捕获。


内容的提问来源于stack exchange,提问作者pr4bh4sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:55:55