Java의 AbstractList의 removeRange() 메서드가 보호되는 이유는 무엇입니까?
Abstract List(및 Array List)의 remove Range 메서드가 왜protected
꽤 잘 정의되고 유용한 작업처럼 보이지만, 사용하려면 List 구현을 하위 분류해야 합니다.
뭔가 숨겨진 이유가 있나요?저한테는 설명이 안 되는 것 같아.
네, 그렇게 하면 외부 코드에서 범위를 제거할 수 없기 때문입니다.대신 다음을 수행합니다.
list.subList(start, end).clear();
은 실제로 '이렇게 하다'라고 불립니다.removeRange
막후에서†
는 왜 OP가 필요하냐고 .removeRange
에는 포함되지 .List
APIpublic API 。는 「 Java ed」의 항목 여기서 합니다.「Effective Java 2nd ed」는 「Effective Java 2nd ed」의 항목 40에 기재되어 있습니다.여기서 인용하겠습니다.
지나치게 긴 파라미터 리스트를 단축하는 방법에는 세 가지가 있습니다.하나는 메소드를 여러 메서드로 분할하는 것입니다.각 메서드는 파라미터의 서브셋만 필요로 합니다.부주의하게 수행하면 너무 많은 방법이 발생할 수 있지만 직교성을 증가시켜 방법 카운트를 줄이는 데 도움이 될 수도 있습니다.예를 들어,
java.util.List
인터페이스입니다.서브목록에서 요소의 첫 번째 또는 마지막 인덱스를 찾는 메서드는 제공되지 않습니다.둘 다 3개의 파라미터가 필요합니다. " " 가 됩니다.subList
method : 2개의 파라미터를 사용하여 서브목록 뷰를 반환합니다.이 메서드는 다음과 같이 조합할 수 있습니다.indexOf
★★★★★★★★★★★★★★★★★」lastIndexOf
각 방법에는 단일 매개 변수가 있으며 원하는 기능을 제공합니다. ''는subList
이 방법은 위에서 동작하는 모든 방법과 조합할 수 있습니다.List
인스턴스(instance)를 사용하여 하위 목록에서 임의 계산을 수행합니다.API를 사용합니다.
라고 할 수 removeRange
이 않을 만, 이 을 호출하는 것을 알 수 removeRange
subList
할 List
이치노
† 문서에는 다음과 같이 기재되어 있습니다.
을 '이렇게 하다'라고 .
clear
이 리스트와 그 서브 리스트의 조작을 클릭합니다.이 방법을 덮어쓰고 목록 구현의 내부 기능을 활용하면clear
이 리스트와 그 서브 리스트의 조작을 클릭합니다.
또한 OpenJDK의 및 구현도 참조하십시오.
언급URL : https://stackoverflow.com/questions/2289183/why-is-javas-abstractlists-removerange-method-protected
'programing' 카테고리의 다른 글
Python에서 오브젝트의 크기를 확인하는 방법은 무엇입니까? (0) | 2022.09.21 |
---|---|
flake8이 필터 절의 부울 비교 "=="에 대해 불만을 제기합니다. (0) | 2022.09.21 |
PHP의 효율적인 JPEG 이미지 크기 조정 (0) | 2022.09.21 |
python pander에서 data Frame을 두 개 이상의 열로 정렬하는 방법은 무엇입니까? (0) | 2022.09.21 |
regex.test V.S string.match를 실행하여 문자열이 정규 표현과 일치하는지 확인합니다. (0) | 2022.09.21 |