3 回答
TA贡献1810条经验 获得超5个赞
我通常最终会使用自定义方法来解决此类问题:
private <T> T[] makeArray(T... elements) { return elements; }
你的例子看起来像:
String[] columns = makeArray("unit", method_arg, "hash"); String[] types = makeArray("INTEGER", method_arg_types, "INTEGER");
TA贡献1866条经验 获得超5个赞
我认为您误解了代码的清晰度和可读性。首先,您完全正确,代码的清晰度和可读性具有最高价值。但是,这并不意味着读者应该立即看到代码的结果 - 在您的情况下是数组的内容。这意味着读者首先可以清楚地看到代码的作用,其次可以清楚地看到代码是如何做的。有很多方法可以确保清晰度。
将较长的方法分解为较短的方法,最好是 4 - 5 行,但最多不超过 10 - 15 行。确保每个方法仅处理一个逻辑上不可分割的问题。
确保方法名称具有信息性
参数数量保持最少 (0 - 3)
参数的名称和顺序是有意义的。
返回值与方法的目的相匹配。
当然,这不是完整的列表。
TA贡献1900条经验 获得超5个赞
Java 有一个更简单的方法,恕我直言,这更容易一点,并且可以被编译掉:-)
示例用法,类似于其他建议:
private static void method(String method_arg, String method_arg_types) {
String[] columns = array("INTEGER", method_arg, "INTEGER");
String[] types = array("INTEGER", method_arg_types, "INTEGER");
}
作为 var-args 实现方式的副作用,实现要容易得多。
@SafeVarargs
public static <T> T[] array(T... values) {
return values;
}
它也在org.assertj.core.util中实现,恕我直言,它应该是 JDK 的一部分:-)
添加回答
举报