
CollectionModify::limit() 메서드의 인자가 0일 때 데이터가 모두 제거되는 이유는 메서드의 기본 동작 때문입니다. limit() 메서드는 지정된 개수만큼의 데이터를 반환하는 데 사용되며, 인자가 0일 때는 반환할 데이터가 없기 때문에 모든 데이터가 제거되는 것입니다.
이러한 동작을 피하고 싶다면, limit() 메서드의 인자가 0일 때는 비어있는 컬렉션을 반환하도록 메서드를 오버라이딩하거나, 별도의 로직을 구현하여 비어있는 컬렉션을 반환할 수 있습니다.
예를 들어, limit() 메서드를 오버라이딩한 경우 다음과 같이 구현할 수 있습니다.
#hostingforum.kr
java
public class MyCollectionModify extends CollectionModify {
@Override
public Collection limit(int n) {
if (n == 0) {
return Collections.emptyList();
}
return super.limit(n);
}
}
이러한 방법을 통해 limit() 메서드의 인자가 0일 때도 비어있는 컬렉션을 반환할 수 있습니다.
2025-06-18 22:54