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

IntelliJ中Kotlin属性名含重音字符触发警告的解决求助

解决Kotlin属性名带重音字符的IntelliJ警告问题

问题背景

在Kotlin数据类中使用带重音的属性名(如désactivé)时,代码编译和运行均正常,但IntelliJ仍弹出警告:Property name 'désactivé' may contain only letters and digits,且已处理过“Non-ASCII character”警告后,该警告仍存在。

示例代码:

data class Utilisateur(
    var idUtilisateur: UUID?,
    var nom: String?,
    var désactivé: Boolean?, // 触发警告
)

解决方案

方法一:修改IntelliJ全局命名检查规则

  1. 打开IntelliJ设置(快捷键Ctrl+Alt+S,或通过File → Settings进入)
  2. 依次导航到 Editor → Inspections → Kotlin → Naming conventions
  3. 找到Property name检查项,点击右侧的「Edit」按钮
  4. 将默认的正则表达式(通常为^[a-zA-Z0-9_$]*$)修改为支持Unicode字母的规则:
    ^[\p{L}\p{N}_$]*$
    
    其中\p{L}匹配所有Unicode字母(包括带重音的字符),\p{N}匹配数字,同时保留下划线和美元符号的支持。
  5. 点击「Apply」和「OK」保存设置,警告将全局消失。

方法二:局部抑制警告

如果不想修改全局规则,可以针对单个属性添加注解抑制警告:

data class Utilisateur(
    var idUtilisateur: UUID?,
    var nom: String?,
    @Suppress("NON_STANDARD_PROPERTY_NAME")
    var désactivé: Boolean?,
)

原因说明

Kotlin语言规范本身允许使用Unicode字符作为标识符(包括带重音的字母),因此代码编译和运行不受影响。但IntelliJ的默认命名检查规则默认仅允许ASCII字母和数字,所以会触发该警告,调整规则或局部抑制即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:57:11