【发布时间】:2016-01-21 16:27:12
【问题描述】:
需要使这个通用:
public static String[] tail(String[] array) {
String[] result = new String[array.length - 1];
System.arraycopy(array, 1, result, 0, result.length);
return result;
}
这样:
assertArrayEquals(new Integer[]{2, 3}, tail(new Integer[]{1, 2, 3}));
assertArrayEquals(new String[]{"B", "C"}, tail(new String[]{"A", "B", "C"}));
assertArrayEquals(new String[]{"C"}, tail(tail(new String[]{"A", "B", "C"})));
assertArrayEquals(new String[]{}, tail(new String[]{"A"}).length);
这样tail(new String[0]) 是非法的。
我在 SO 上找不到任何关于数组尾部的内容,只是 Lists 的尾部等,但我想在可变长度参数列表的上下文中使用而不将数组转换为 List。
带有可变长度参数的tail的示例用法:
public static File file(String root, String... parts) {
return file(new File(root), parts);
}
public static File file(File root, String... parts) {
if (parts.length == 0)
return root;
return file(new File(root, parts[0]), tail(parts));
}
【问题讨论】:
-
投反对票是因为不清楚、无用或未研究。请详细说明您认为这属于哪一类。
标签: java