나는 데이터 클래스 중 하나가 열거 형인 추상 클래스 Medium을가집니다.메소드에서 enum을 매개 변수로 전달 하시겠습니까?
private Taal talenOndertiteling[];
public enum Taal {
NEDERLANDS, FRANS, DUITS, ENGELS, SPAANS, ITALIAANS
}
public Taal[] getTalenOndertiteling() {
return talenOndertiteling;
}
public void setTalenOndertiteling(Taal[] talenOndertiteling) {
this.talenOndertiteling = talenOndertiteling;
}
는 이제 다음과 같이 마지막 메소드를 호출하려고하면 나는 오류를 받고 있어요
BD bd1 = new BD();
bd1.setTalenOndertiteling(Taal.ENGELS);
. (BD 클래스는 Medium 클래스를 구현합니다.) 어떻게 메소드를 호출해야하는지에 대한 아이디어가 있습니까? 그리고 여러 언어를 설정하고 싶다면 어떻게해야합니까?
감사합니다.
(주의 할 필요가, 당신은 거의 확실 방식에 해당 배열을 복제하고 밖으로, 또는 더 나은'Collection'을 복사해야합니다.) –
복제로 정확히 무엇을 의미합니까? 그리고 컬렉션이 더 좋은 이유는 무엇입니까? 배열을 사용하는 것과 다른 방법을 사용하는 것의 차이점 (ArrayList?)을 메서드의 매개 변수로만 사용하는 경우에는 표시되지 않습니다. 이것을 언급 해 주셔서 감사합니다! – networkprofile
복제하지 않으면 "개인"변수가 바깥에서 변경 될 수 있습니다. 이로 인해 불분명 한 버그가 생길 수 있습니다. (제 작업 라인에서는 값 비싼 보안 취약성이 있습니다). 콜렉션은 노출 된 구현 기술이 아니라 더 멋진 인터페이스 ('[]'제외)를 제공합니다. 예를 들어 배열을 사용하여 말할 수는 없지만 (반드시 그런 것은 아니지만) 아마 배열이 세트처럼 동작하기를 원할 것입니다. 그래서 Set은 명백한 것이 될 것입니다. –