varargs(...)
인수로 전달하기만을 위해 배열을 만드는 것은 아무런 의미가 없습니다.
varargs는 배열입니다.
원소들을 그냥 직접 전달하기만 하면 됩니다.
그러면 자동으로 배열로 통합되어 전달됩니다.
varargs(...)
가 Object ...
인 경우 배열을 전달하는 것 자체가 의도가 불명확할 수 있습니다
배열을 객체 하나로 전달하고 싶었던 건가요? 아니면 객체의 집합을 전달하고 싶었던 건가요?
규칙을 어긴 코드
public void callTheThing() {
//...
doTheThing(new String[] { "s1", "s2"}); // 규칙을 어긴 코드: 필요없음
doTheThing(new String[12]); // 규칙을 준수한 해결책
doTheOtherThing(new String[8]); // 규칙을 어긴 코드: 모호함
// ...
}
public void doTheThing (String ... args) {
// ...
}
public void doTheOtherThing(Object ... args) {
// ...
}
규칙을 준수한 해결책
public void callTheThing() {
//...
doTheThing("s1", "s2");
doTheThing(new String[12]);
doTheOtherThing((Object[]) new String[8]);
// ...
}
public void doTheThing (String ... args) {
// ...
}
public void doTheOtherThing(Object ... args) {
// ...
}
If you like SONARKUBE, don’t forget to give me a star.