gpt4 book ai didi

java - Checkstyle 规则以防止调用某些方法和构造函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:35 24 4
gpt4 key购买 nike

是否可以使用 Checkstyle 来禁止使用某些使用系统相关默认值(区域设置、字符集等)的构造函数或方法。我更喜欢强制执行一项政策,程序员应该明确说明依赖于系统的值。所以我认为以下元素是危险的:

  • java.io.FielWriter 的所有构造函数
    • 使用系统相关的编码
  • java.io.OutputStreamWriterOutputStreamWriter(OutputStream os) 构造函数
    • 使用系统相关的编码
  • java.lang.String.toLowerCase() 方法
    • 使用系统默认语言环境
  • java.util.Calendar.getInstance() 方法
    • 使用系统默认语言环境和默认时区

(列表还在继续,你明白了)。

是否可以使用 Checkstyle 5.5 强制执行此操作?

最佳答案

您不能默认执行此操作。但是,您可以实现自己的检查器来检查这些方法。

第一个选项是使用 Miscellaneous->Regexp。这显然只有在您可以使用正则表达式找到违规行为时才有可能。您将需要设置 illegalPattern = true。我认为这是一个很好的起点。

第二个选项是创建您自己的支票。参见 Writing Checks .

编写跳棋有局限性。第一个也是最重要的是您看不到其他文件。没有任何交叉检查。来自网站:

  1. You cannot determine the type of an expression.
  2. You cannot see the content of other files. (although you can save processed files for use later)

This means that you cannot implement some of the code inspection features that are available in advanced IDEs like IntelliJ IDEA. For example you will not be able to implement a Check that finds redundant type casts or unused public methods.

因此您无法检查例如 java 是否正在调用一种方法,该方法具有区域设置的替代方法。您可以使用不允许调用的方法黑名单。因此,例如调用 new FileWriter() 将检查传递的参数数量等。

关于java - Checkstyle 规则以防止调用某些方法和构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8416870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com