varargs를 사용하는 Java 함수 (또는 생성자)가 실제로 varargs 또는 배열과 함께 호출되었는지 여부를 확인하는 방법이 있습니까? Java : 함수가 varargs 또는 배열로 호출되었는지 알아보기
내가 다음이 말 :public class MyCompositeObjects {
MyObject[] objects;
MyCompositeObjects(MyObjects... objects) {
this.objects = Arrays.copyOf(objects,objects.length);
// or just: this.objects = objects; ?
}
// ...
}
생성자는 나중에 변경 될 수 있습니다 하나의 MyObject[]
인수로 호출 될 수 있으며, 내가 생성자에서 배열을 복사하지 않는 경우 해당 변경 사항이 적용됩니다 멤버 변수 objects
도 마찬가지입니다. 그러나 생성자가 여러 개의 MyObject
을 사용하여 호출 된 경우 나중에 클래스 외부에서 변경하도록 배열 *에 대한 참조가 없으므로 직접 할당 할 수 있습니다. 생성자 내부에서 (또는 일반적으로 varargs를 사용하는 함수) 어떻게 호출되었는지 알 수 있습니까?
* nb : 구체적인 이름이 있습니까? 단순히 익명의 배열입니까?
정적 공장 예에는 문제가 있습니다. "copy"부울은 생성자 인수가 아니며 objects.close()를 호출합니다. –