2011-10-28 4 views
0

나는 5 개의 double 값을 취하고 그들과 함께 동작을 수행하는 메서드를 가지고있다. 지금 인수 목록은 5 개의 다른 복식입니다. 메서드에 인수로 double[]을 전달할 수있는 방법이 있지만 길이가 정확히 5인지 확인하십시오.Java : 메서드 매개 변수로 미리 결정된 길이의 배열을 설정 하시겠습니까?

한 가지 방법은 이것이다 :

private void myMethod(double[] args) { 
    if (args.length == 5) { 
     // do something 
    } 
} 

하지만 더 좋은 방법은 무엇입니까?

답변

3

정확히 5 배가 필요하다는 것을 알고 있다면 5 개의 별개의 복식을 요구하는 것이 더 나을 것이라고 생각합니다. 그것들을 의미있는 이름으로 나열하면 변수의 순서를 똑바로 유지하기가 어려울 것입니다 (심지어 인텔리 센스 또는 호출이라도). 배열에있는 경우 사용자는 설명서를 참조하여 어떤 값을 어떤 색인에 포함시켜야하는지 확인해야합니다.

0

아니요. 함수에 전달 된 배열의 길이를 제한 할 수 없습니다.

당신의 목표가 메소드에서 체크 코드를 깨끗하게 유지하여 실제 작업을 다른 메소드에 위임 할 수 있습니다.

매개 변수 목록의 길이가 걱정되면 매개 변수 개체를 전달할 수 있습니다.

0

5 개의 double로 제한된 Vector의 특수화 클래스를 만들 수 있지만 과도한 것처럼 보입니다. 배열에 너무 적거나 많은 항목이있는 경우 예외가 발생합니다. 런타임 예외가 아닌 프로그래밍 문제 일 수 있습니다.

0

코드를 try-catch 블록에 넣을 수 있습니다. 이렇게하면 불필요한 검사를 놓치게됩니다. 하지만 뭔가 잘못되면 예외로 인한 문제를 피할 수 있습니다.

관련 문제