0

当我使用 Android Studio 的自动导入或优化导入工具时,我看到很多 checkstyle 导入顺序违规。

例如:

Wrong lexicographical order for 'coil.Coil' import. Should be before 'java.util.concurrent.TimeUnit'.
Wrong lexicographical order for 'androidx.annotation.Nullable' import. Should be before 'java.util.Collections.emptyList'.
Wrong lexicographical order for 'java.util.Map' import. Should be before 'org.json.JSONObject'.

为什么 Android Studio 自动在 java 之后放置线圈,但在 java 包之前放置 org?有没有一种方法可以自定义 Android Studio 行为,或者更好的是,有一个适合 Android Studio 行为的 checkstyle 配置?

4

1 回答 1

0

您可以在以下位置检查 Android Studio 设置:

Preferences>Editor>Code Style>Java

我的 Android Studio(Arctic Fox 2020.3.1 Patch 3)的默认设置如下: 在此处输入图像描述

如您所见,Android Studio 对一些包的处理方式有所不同。这就是为什么导入顺序不是您所期望的。

您可以使用该specialCustomImportOrder

<module name="CustomImportOrder">
  <property name="sortImportsInGroupAlphabetically" value="true"/>
  <property name="separateLineBetweenGroups" value="true"/>
  <property name="customImportOrderRules" value="STATIC###SPECIAL_IMPORTS###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE"/>
  <property name="specialImportsRegExp" value="^(android|androidx|com|junit|net|org)\."/>
</module>

注意:静态导入可能仍然会遇到同样的问题,但我认为没有选项可以使用 checkstyle 解决此问题。

于 2021-11-16T08:28:24.337 回答