2
당신이 자바 방법을전달 혼합 방법
void foobar(int id, String ... args)
을 가지고하는 방법으로 두 문자열 배열 및 문자열을 통과한다고 가정 변수 인수. 이처럼
String arr1[]={"adas", "adasda"};
String arr2[]={"adas", "adasda"};
foobar(0, "adsa", "asdas");
foobar(1, arr1);
foobar(2, arr1, arr2);
foobar(3, arr1, "asdas", arr2);
파이썬에는 "*"가 있습니다. 이러한 오히려 못생긴 도우미 방법보다 더 나은 몇 가지 방법이있다 :
static String[] concat(Object... args) {
List<String> result = new ArrayList<String>();
for (Object arg : args) {
if (arg instanceof String) {
String s = (String) arg;
result.add(s);
} else if (arg.getClass().isArray() && arg.getClass().getComponentType().equals(String.class)) {
String arr[] = (String[]) arg;
for (String s : arr) {
result.add(s);
}
} else {
throw new RuntimeException();
}
}
return result.toArray(new String[result.size()]);
}
수 있습니다
foobar(4, concat(arr1, "asdas", arr2));