我们有一个很大的应用程序,它使用了很多Strings
:
- 对于序列号
- 产品名称
- 对于订单号
- 供客户参考
- ... 还有很多 ...
不幸的是,我们的开发人员只是人类。有时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 插件有什么可能?