gpt4 book ai didi

java - 用于检测字符串参数顺序错误的方法调用的注解

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:09:43 24 4
gpt4 key购买 nike

我们有一个使用大量字符串的大型应用程序:

  • 序列号
  • 产品名称
  • 订单号
  • 供客户引用
  • ...还有更多...

不幸的是,我们的开发人员只是人。有时 String 值在调用方法时会混淆。例如:

// this method
public void addProductToOrder(String order, String productname, String serialnumber);

// should be called like:
addProductToOrder(order, productname, serialnumber);

// but is sometimes mistakenly called as:
addProductToOrder(productname, serialnumber, order);

当您的方法需要大约 30 个参数时,很难检测到切换 2 个参数。 (是的,这是那些繁重的业务应用程序之一)

旁注:如果我们创建自己的类 SerialNumber,它只是作为 String 的包装器,我们就不会遇到这个问题。但这似乎是错误的。

最近,我开始想知道是否有一种使用自定义注释检测混淆的方法。毕竟已经有了Nullable, NonNull ...这并没有太大的不同。

我们想注释我们的源代码,例如这样:

public void addProductToOrder(@OrderReference String order, @ProductName String productname, @SerialNumber String serialnumber);

接下来,我们想找到一种方法让我们的 IDE 检测到此处切换了 2 个参数。

@OrderReference String order = "ORDER_001";
@SerialNumber String sn = "0001-1213-007";
@ProductName String productname = "beer";
addProductToOrder(productname, serialnumber, order);
// should have been: addProductToOrder(order, productname, serialnumber);

我们正在使用 IntelliJ IDE。 不编写 IDE 插件有什么可能?

最佳答案

虽然您应该将 ControlAltDel 的评论作为最终解决方案,但 Intelij 确实有一个检查“可疑变量/参数名称组合”可能会有所帮助。您可以输入常用参数名称,如果它认为局部变量不匹配,它会警告您。

enter image description here Intellij's inspection

关于java - 用于检测字符串参数顺序错误的方法调用的注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30576610/

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