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 的一部分:-)
添加回答
舉報