首页 > 解决方案 > 在函数中使用字符串参数是好是坏?

问题描述

前几天我看到一个拉取请求,其中有一个字符串作为函数中的参数,其中字符串没有被修改。相反,该字符串用于在函数的作用之间切换。

getNewTableVersion这样做与创建单独的函数(如/getOldTableVersion以省略tableType参数)相比,这样做的优缺点是什么?

public static String getTableVersion(String prefix, String tableVersion, String tableType) {
    String[] tableVersions = tableVersion.split(prefix);
    Integer version;
    switch (tableType) {
      case "new":
        // set version to newer one
      case "old":
        // set version to older one
      default:
        // default functionality
    }

    return prefix + version.toString();
}

作为记录,我认为这是一种不好的做法。我认为通过利弊列表,我可以说服开发人员不要这样做。

标签: javacoding-style

解决方案


我会说这是不好的做法,因为您无法从其原型中推断出该函数的功能。它散发着神奇的常数。

如果你想做这样的事情,一个选项是使用 anenum来限制参数的可能性tableType


推荐阅读