java - 在函数中使用字符串参数是好是坏?
问题描述
前几天我看到一个拉取请求,其中有一个字符串作为函数中的参数,其中字符串没有被修改。相反,该字符串用于在函数的作用之间切换。
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();
}
作为记录,我认为这是一种不好的做法。我认为通过利弊列表,我可以说服开发人员不要这样做。
解决方案
我会说这是不好的做法,因为您无法从其原型中推断出该函数的功能。它散发着神奇的常数。
如果你想做这样的事情,一个选项是使用 anenum
来限制参数的可能性tableType
。
推荐阅读
- graphql - 无法将可变数据传递给 GraphQL 突变
- laravel - 如何过滤 Laravel Nova 中使用 BelongsTo 字段的选择列表?
- python - 向量和 csr_matrix 的左乘
- python - data.to_excel("output.xlsx") 给出缩进错误
- sql - 如何在 SQL 中生成键和聚合 groupby 函数
- python - 将 int 分解为 sum
- css - 填充自动调整到屏幕尺寸
- django - Django:重定向后发送电子邮件
- c++ - 用于初始化引用的指针引用的值
- php - PHP CURL 不会自动添加 Content-Length 标头