3 回答

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超5個(gè)贊
我通常最終會(huì)使用自定義方法來解決此類問題:
private <T> T[] makeArray(T... elements) { return elements; }
你的例子看起來像:
String[] columns = makeArray("unit", method_arg, "hash"); String[] types = makeArray("INTEGER", method_arg_types, "INTEGER");

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
我認(rèn)為您誤解了代碼的清晰度和可讀性。首先,您完全正確,代碼的清晰度和可讀性具有最高價(jià)值。但是,這并不意味著讀者應(yīng)該立即看到代碼的結(jié)果 - 在您的情況下是數(shù)組的內(nèi)容。這意味著讀者首先可以清楚地看到代碼的作用,其次可以清楚地看到代碼是如何做的。有很多方法可以確保清晰度。
將較長的方法分解為較短的方法,最好是 4 - 5 行,但最多不超過 10 - 15 行。確保每個(gè)方法僅處理一個(gè)邏輯上不可分割的問題。
確保方法名稱具有信息性
參數(shù)數(shù)量保持最少 (0 - 3)
參數(shù)的名稱和順序是有意義的。
返回值與方法的目的相匹配。
當(dāng)然,這不是完整的列表。

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
Java 有一個(gè)更簡單的方法,恕我直言,這更容易一點(diǎn),并且可以被編譯掉:-)
示例用法,類似于其他建議:
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 實(shí)現(xiàn)方式的副作用,實(shí)現(xiàn)要容易得多。
@SafeVarargs
public static <T> T[] array(T... values) {
? ? return values;
}
它也在org.assertj.core.util中實(shí)現(xiàn),恕我直言,它應(yīng)該是 JDK 的一部分:-)
添加回答
舉報(bào)